{"id":13587895,"url":"https://github.com/zaherg/letsencrypt-for-local-development","last_synced_at":"2025-04-08T02:34:11.170Z","repository":{"id":164776256,"uuid":"301071982","full_name":"zaherg/letsencrypt-for-local-development","owner":"zaherg","description":"Docker Compose + Traefik TLS Proxy + Let's encrypt Wildcard Cert","archived":true,"fork":false,"pushed_at":"2020-10-06T09:24:09.000Z","size":14,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-02-13T21:59:12.060Z","etag":null,"topics":["docker","learning-by-doing","lts","traefik"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zaherg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","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},"funding":{"custom":["https://tippin.me/@zaherg","https://m.do.co/c/d913cc215aeb"]}},"created_at":"2020-10-04T07:58:02.000Z","updated_at":"2024-02-13T21:59:12.638Z","dependencies_parsed_at":"2023-06-01T12:01:34.329Z","dependency_job_id":null,"html_url":"https://github.com/zaherg/letsencrypt-for-local-development","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/zaherg%2Fletsencrypt-for-local-development","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaherg%2Fletsencrypt-for-local-development/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaherg%2Fletsencrypt-for-local-development/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaherg%2Fletsencrypt-for-local-development/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zaherg","download_url":"https://codeload.github.com/zaherg/letsencrypt-for-local-development/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247765007,"owners_count":20992214,"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":["docker","learning-by-doing","lts","traefik"],"created_at":"2024-08-01T15:06:24.824Z","updated_at":"2025-04-08T02:34:10.927Z","avatar_url":"https://github.com/zaherg.png","language":"Shell","funding_links":["https://tippin.me/@zaherg","https://m.do.co/c/d913cc215aeb"],"categories":["Shell"],"sub_categories":[],"readme":"# Docker Compose + Traefik TLS Proxy + Let's encrypt Wildcard Cert\n\n\u003e This is an example is mainly for solo developers. But it is easy to study and change to fit into your shoes.\n\nThis is an example of a solution I've used in various forms for months for local development. It's easy, flexable, and gives a near magical solution for always running HTTP apps through docker-compose with valid TLS, all on a single port with host-header SNI routing via Traefik proxy.\n\n## Why would you want this?\n\n- You want to use TLS locally in HTTP development\n- You would like a single proxy app to all of your containers (microservices, etc.) on `80/443`\n- You'd like to use domain names for all your compose services, like https://api.domain.dev without touching `/etc/hosts`\n- You'd like a trusted certificate in your browsers for local dev and test of any app hostname (api, www, blog, etc.)\n- You'd like this to all happen consistanly across all your dev projects\n\n\nInspired by Bret Fisher [project][]\n\n## Requirements\n\n1. Docker\n2. Docker Compose\n3. Domain Name\n4. Digital Ocean account [referral link][]\n\n## Overall Steps to Implement\n\n1. Decide which [DNS provider][] you want to use, for me I use [Digital Ocean][]\n2. Add two DNS records to your domain name DNS record, which points to your computer IP, like : `*.domain.dev 192.168.1.10 / domain.dev 192.168.1.10`.\n3. Create a new environment file called `.env` which should be a copy from `.env.example` and update the values based on your project.\n\nIf you want to run the example, make sure to have an environment file called `.env.minio` which should be a copy from `.env.minio.example`\n\nThe main services are the socket and the proxy, one to protect your docker socket and the second is for [traefik][].\n\n## Note\n\nThis is not a template, this is an example that you can study and implement.\n\n\n\n\n[referral link]: https://m.do.co/c/d913cc215aeb\n[Digital Ocean]: https://m.do.co/c/d913cc215aeb\n[DNS provider]: https://doc.traefik.io/traefik/https/acme/#providers\n[project]: https://github.com/BretFisher/compose-dev-tls\n[traefik]: https://docs.traefik.io\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzaherg%2Fletsencrypt-for-local-development","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzaherg%2Fletsencrypt-for-local-development","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzaherg%2Fletsencrypt-for-local-development/lists"}