{"id":19317788,"url":"https://github.com/queeniecplusplus/gae","last_synced_at":"2026-05-17T03:02:36.385Z","repository":{"id":104588235,"uuid":"311002851","full_name":"QueenieCplusplus/GAE","owner":"QueenieCplusplus","description":"Google App Engine (easier than GCE)","archived":false,"fork":false,"pushed_at":"2020-11-08T07:51:36.000Z","size":176,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-06T04:26:02.625Z","etag":null,"topics":["deployment","gae","gae-server","gae-standard","gce-instance","saas"],"latest_commit_sha":null,"homepage":"https://github.com/QueenieCplusplus/QuickGoThru/blob/master/README.md#gae","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QueenieCplusplus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-08T06:47:39.000Z","updated_at":"2020-11-08T07:51:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"42ee8648-9442-41db-bcc3-ec1633afb6cd","html_url":"https://github.com/QueenieCplusplus/GAE","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QueenieCplusplus%2FGAE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QueenieCplusplus%2FGAE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QueenieCplusplus%2FGAE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QueenieCplusplus%2FGAE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QueenieCplusplus","download_url":"https://codeload.github.com/QueenieCplusplus/GAE/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240420940,"owners_count":19798501,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deployment","gae","gae-server","gae-standard","gce-instance","saas"],"created_at":"2024-11-10T01:16:15.421Z","updated_at":"2026-05-17T03:02:31.356Z","avatar_url":"https://github.com/QueenieCplusplus.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GAE\nGoogle App Engine (easier than GCE)\n\n![](https://raw.githubusercontent.com/QueenieCplusplus/GAE/main/gae.jpg)\n\na very easier Serverless way (than GCE \u0026 GKE) to create, maintain, scale up for the changing network traffic \u0026 stoage needs and so on, such as LB, microservices, noSQL DB, memcache, revision and rollback/rollout.\n\nsince the GCE is an IaaS solution, GCP provides devops the SaaS solution got the same result from GCE + GKE, helps developers to create env for their app (website) using GAE + Cloud Run.\n\nserverless see https://github.com/QueenieCplusplus/CloudRun/blob/main/README.md\n\n# yaml file \n\nall config info for GAE in app\n\nhttps://cloud.google.com/appengine/docs/flexible/nodejs/configuring-your-app-with-app-yaml\n\n# support Hosts \n\n    * Nodejs\n\n    * PHP\n\n    * Go\n\n    * Java\n\n# Core Steps:\n\n(1) create a Nodejs App\n\n(2) deploy app in GAE instance\n\n(3) without Downtime, revsion (rollback/rollout) the App\n\n-----\n\n# Nodejs App\n\nfrom step 1\n\n\u003e to clone, install, and start the App server.\n\n* 1.1 open cloud shell\n\n* 1.2, clone the app from github\n\n       git clone https://github.com/QueenieCplusplus/Simple_Nodejs_App.git\n\n* 1.3, install the app in shell\n\n       cd Simple_Nodejs_App\n       \n       cd flexible\n       \n       npm install\n\n* 1.4, start the npm server\n\n       npm start\n\n* 1.5, stip the npm server\n\n       ctrl + c\n       \n# GAE API\n\nfrom step 2\n\n\u003e to activate (enable) the API Service in Cloud console.\n\n* 2.1, in cloud console, navigate to API \u0026 Services \u003e Dashboard.\n\n![](https://raw.githubusercontent.com/QueenieCplusplus/GAE/main/activate%20api.png)\n\n* tips \u0026 attentions:\n\nApp Engine uses a file called app.yaml to describe an application's deployment configuration. If this file is not present, App Engine will try to guess the deployment configuration. However, it is a good idea to provide this file.\n\nOpen app.yaml to see what it contains. You can use vim, nano,or emacs to view the file.\n\n* 2.2, in cloud sell, open the app.yaml file to see the code line as following.\n\n         runtime: nodejs\n         env: flex\n         \n* 2.3, to deploy app into GAE.\n\n         gcloud app deploy\n\nRegion Selection\n\n* 2.4, to select the nearest region in prompt for app to deploy, then type \"y\" to say yes.\n\n      Because this is the first time you are deploying App Engine, the tool will prompt you to select a location to deploy the app.\n\n* tips \u0026 attentions:\n\nIt takes time sunce the App Engine environment automatically provisions a (GCE) Compute Engine virtual machine for you behind the scenes, and then installs and starts the application.\n\nBrowe URL\n\n* 2.5, after deployment, we got an URL which is a new url in browser, this proj-id is as same as proj-id in \"Connection Details\" Tab in c;oud console.\n\n       http://\u003cproj-id\u003e.appspot.com \n\n# Modify Web App\n\nfrom step 3:\n\n\u003e install new lib, add some codeline, and re-deploy app without Downtime.\n\n* 3.1, in cloud shell, install new lib.\n\n      npm install uuid@^3.1 --save\n      \n* 3.2, add some codeline to app.js\n\n      vi app.js\n      \n      i\n      \n      [app.js]\n      \n      const uuid = require('uuid/v4');\n      \n      ...\n      \n      .send(ˋHello, ${uuid()}ˋ)\n      \n      :wq\n      \n* app.js\n\n      'use strict';\n\n      // [START gae_flex_quickstart]\n      const express = require('express');\n      const uuid = require('uuid/v4');\n\n      const app = express();\n\n      app.get('/', (req, res) =\u003e {\n        res\n          .status(200)\n          .send(`Hello, ${uuid()}!`)\n          .end();\n      });\n\n      // Start the server\n      const PORT = process.env.PORT || 8080;\n      app.listen(PORT, () =\u003e {\n        console.log(`App listening on port ${PORT}`);\n        console.log('Press Ctrl+C to quit.');\n      });\n      // [END gae_flex_quickstart]\n      \n * 3.3, we can test app locally in cloud shell and console.\n \n       npm start\n       \n * 3.4, and see the result in the browser, after clicking on \"preview on port 8080\" tab in console.\n\n# Revsion Web\n\n* 3.5, run app after typing the cmd line in shell.\n\n       gcloud app deploy\n       \n * 3.6, see new web page which is deployed using the url \n \n       http://\u003cproj-id\u003e.appspot.com \n \n * 3.7, or use cloud shell to see the deployment result.\n \n       gcloud app browse\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqueeniecplusplus%2Fgae","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqueeniecplusplus%2Fgae","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqueeniecplusplus%2Fgae/lists"}