{"id":16774293,"url":"https://github.com/jlandure/go-appengine-https","last_synced_at":"2025-04-10T20:06:29.651Z","repository":{"id":147501364,"uuid":"64284030","full_name":"jlandure/go-appengine-https","owner":"jlandure","description":"Sandbox for static website working with Let's Encrypt and AppEngine","archived":false,"fork":false,"pushed_at":"2018-01-10T22:01:43.000Z","size":11,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T17:52:36.870Z","etag":null,"topics":["appengine","challenge","docker","https","letsencrypt","ssl-certificate"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/jlandure.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":"2016-07-27T06:40:11.000Z","updated_at":"2018-01-05T16:00:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"afc42820-ab6c-44f9-98b3-dd81ebdcec85","html_url":"https://github.com/jlandure/go-appengine-https","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/jlandure%2Fgo-appengine-https","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlandure%2Fgo-appengine-https/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlandure%2Fgo-appengine-https/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlandure%2Fgo-appengine-https/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jlandure","download_url":"https://codeload.github.com/jlandure/go-appengine-https/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248288340,"owners_count":21078900,"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":["appengine","challenge","docker","https","letsencrypt","ssl-certificate"],"created_at":"2024-10-13T06:48:42.711Z","updated_at":"2025-04-10T20:06:29.643Z","avatar_url":"https://github.com/jlandure.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Static https website host on AppEngine\nSandbox for Go handlers working with [Let's Encrypt](https://letsencrypt.org/) and [AppEngine](https://cloud.google.com/appengine)\n\n# Goals\n- Get a starter project to create a static website working on HTTPS (via Let's Encrypt)\n- Use a free platform thanks to [Google AppEngine free quota](https://cloud.google.com/appengine/docs/quotas)\n- Share knowledge about AppEngine, a great PaaS\n- Get feedback from the community\n- Help people playing with [Go(lang)](https://golang.org), the perfect programming language for cloud platform\n\n# How to create and deploy\n- Create an app on [AppEngine](https://console.cloud.google.com/)\n - specify a name and if you want to use `us-central`, `europe-west` or `us-east1`\n- Add `App Engine Admin API`\n- Generate a deployment key using an account service and download the json file\n- Deploy using a CI tool like [codeship](https://codeship.com/) or [circleci](https://circleci.com)\n - Add env variable `GAE_SERVICE_ACCOUNT` with `xxx@appspot.gserviceaccount.com`\n - Add env variable `GAE_KEY_FILE_CONTENT` with the content of your json file\n- Use `gcloud-install.sh` to install gcloud tool\n- Specify your `$APPNAME` and `$VERSION` in the script `gcloud-deploy.sh` or in your CI\n\n# Activate HTTPS with App Engine Managed Certs Beta\n\nPlease use the following command to get a free and automatically renewed certificate:\n```\ngcloud beta app domain-mappings update devfest2015.gdgnantes.com --certificate-management='AUTOMATIC'\ngcloud beta app domain-mappings describe devfest2015.gdgnantes.com\ngcloud beta app ssl-certificates describe XXXXXX\n```\n\nAppEngine will manage this certificate directly for you! _(like firebase)_\n\nEnjoy!\n\n# Activate HTTPS with Let's encrypt on AppEngine manually\n- Launch the following command using `docker`\n```\ndocker run -it -p 443:443 -p 80:80 \\\n  -v \"$(pwd)/ssl-keys:/etc/letsencrypt\" \\\n  quay.io/letsencrypt/letsencrypt:latest \\\n  -a manual certonly\n```\n- Go to `https.go` and change the challenge (L14)\n- Enter an email for urgent notices, accept the terms and enter the domain to secure\n- Commit and upload the application with the new challenge\n- Complete the docker command line\n- Go to `/ssl-keys/live/\u003cmydomain\u003e/` and upload the files on [AppEngine settings for certificate](https://console.cloud.google.com/appengine/settings/certificates):\n  - fullchain.pem\n  - rsa.pem using the command line `openssl rsa -in privkey.pem -out rsa.pem`\n- To get the file with Docker, execute `docker start $(docker ps -ql)`\n- Then go inside with `docker exec -it $(docker ps -ql) bash` and `cd /etc/letsencrypt/live/\u003cmydomain\u003e`\n\n# AppEngine static files configuration\n- Static files are cached for 30 days except for `index.html` (5 minutes)\n- We specify the file extensions for static file in order to avoid conflict with `golang` files\n\n# Circle CI configuration file\nSee the `circle.yml` configuration file for an example.\n\nDon't forget to set $APPNAME and $VERSION in the env variables.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlandure%2Fgo-appengine-https","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjlandure%2Fgo-appengine-https","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlandure%2Fgo-appengine-https/lists"}