{"id":18736559,"url":"https://github.com/crazyvito11/traefik-reverse-proxy","last_synced_at":"2026-05-17T01:33:24.574Z","repository":{"id":238931938,"uuid":"797966996","full_name":"CrazyVito11/traefik-reverse-proxy","owner":"CrazyVito11","description":"A Traefik Docker configuration that acts as the entrypoint for my development environment","archived":false,"fork":false,"pushed_at":"2025-07-26T10:57:50.000Z","size":397,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-26T16:45:10.410Z","etag":null,"topics":["configuration","development-environment","docker","jaeger","jaeger-tracing","localhost-environment","reverse-proxy","traefik","traefik-configurations","traefik-docker","traefik-v2"],"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/CrazyVito11.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,"zenodo":null}},"created_at":"2024-05-08T20:37:05.000Z","updated_at":"2025-07-26T10:57:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"79d62700-41cd-4047-aca6-49efdf577c3a","html_url":"https://github.com/CrazyVito11/traefik-reverse-proxy","commit_stats":null,"previous_names":["crazyvito11/traefik-reverse-proxy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CrazyVito11/traefik-reverse-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CrazyVito11%2Ftraefik-reverse-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CrazyVito11%2Ftraefik-reverse-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CrazyVito11%2Ftraefik-reverse-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CrazyVito11%2Ftraefik-reverse-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CrazyVito11","download_url":"https://codeload.github.com/CrazyVito11/traefik-reverse-proxy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CrazyVito11%2Ftraefik-reverse-proxy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267620969,"owners_count":24116882,"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","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["configuration","development-environment","docker","jaeger","jaeger-tracing","localhost-environment","reverse-proxy","traefik","traefik-configurations","traefik-docker","traefik-v2"],"created_at":"2024-11-07T15:21:27.872Z","updated_at":"2026-05-17T01:33:19.547Z","avatar_url":"https://github.com/CrazyVito11.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Traefik reverse proxy\nA Traefik Docker configuration that acts as the entrypoint for my development environment.\n\n\n## Setup\nThe setup process is pretty simple, we will only have to execute a couple of steps to get it up and running.\n\n### Create the Docker network\nFirst we will need to make the `traefik-reverse-proxy` Docker network.\nYou can do this with the following command:\n```\ndocker network create traefik-reverse-proxy\n```\n\n### Configure the environment file\nConfiguring the basicauth credentials, IP binding and more are all configured using the `.env` file.\n\nIn order to get started, make a copy of `.env.example` and call it `.env`.\n\nThe default credentials should be fine for a development setup, but might need to be adjusted for non-development environments.\n\n### Generate a TLS certificate\nWe will generate a certificate in order to allow HTTPS requests on our development environment.\nThe certificate will be a wildcard certificate, this is done so that all your development applications can use this certificate.\n\nDepending on your preference, you can select between `localhost`, `dev` and `test` as the top level domain.\n```sh\ncd tls\n\n# If you want to use .localhost, run\n./generate_wildcard_localhost_certificate.sh\n\n# If you want to use .dev, run\n# ./generate_wildcard_dev_certificate.sh\n\n# If you want to use .test, run\n# ./generate_wildcard_test_certificate.sh\n```\n\n\u003e [!IMPORTANT]  \n\u003e We assume that you use the \".localhost\" top level domain in this container.\n\u003e\n\u003e If you use something else, you will also have to update the domains inside the `.env` file of this repository and all the project that you are hosting.\n\n\n### Start the container\nOnce you have done all of that, you are ready to get started!\n\nSimply run the following command to start the Traefik container:\n```\ndocker-compose up -d\n```\n\n\n## Traefik dashboard\nIf you want to see which containers are using Traefik at the moment, you can visit the Traefik dashboard.\n\n![Screenshot of the Traefik dashboard](./assets/traefik_dashboard_preview.png)\n\n\nYou can visit the Traefik dashboard at [https://traefik.localhost](https://traefik.localhost).\n\n\u003e [!NOTE]  \n\u003e The Traefik Dashboard requires you to log in, the default credentials are as follows:\n\u003e\n\u003e **Username:** `traefik`\n\u003e\n\u003e **Password:** `PLEASE_change_THE_default_CREDENTIALS!`\n\n\u003e [!WARNING]  \n\u003e It's **highly recommended** that you change the credentials to something else.\n\u003e Using the default value could lead to someone unauthorized entering the Traefik dashboard.\n\n## Jaeger UI\n[Jaeger](https://www.jaegertracing.io) is also available in order to monitor and troubleshoot requests that are made to your services.\n\n![Screenshot of the Jaeger UI](./assets/jaeger_ui_preview.png)\n\n\nYou can visit the Jaeger UI at [https://jaeger.localhost](https://jaeger.localhost).\n\n\u003e [!NOTE]  \n\u003e The Jaeger UI requires you to log in, the default credentials are as follows:\n\u003e\n\u003e **Username:** `jaeger`\n\u003e\n\u003e **Password:** `PLEASE_change_THE_default_CREDENTIALS!`\n\n\u003e [!WARNING]  \n\u003e It's **highly recommended** that you change the credentials to something else.\n\u003e Using the default value could lead to someone unauthorized entering the Jaeger UI.\n\n\n## Change the default credentials\nIt's **highly recommended** that you change the default credentials to something else, so in this section we are going to explain how you can change them.\n\nRun the following command to generate the required output for Traefik. Make sure to also replace `your_username_here` with your desired username.\n```sh\necho $(htpasswd -nB your_username_here) | sed -e s/\\\\$/\\\\$\\\\$/g\n```\n\nThe command will then ask for a password, enter your desired password and then you should receive a string that looks something like this:\n```\nyour_username_here:$$2y$$05$$KlVS5bAXb8TL5h.vzzUMxOiOKWB6fA67zakKSY5y3oRWqBfGwD3Zu\n```\n\nNow update your `TRAEFIK_DASHBOARD_BASICAUTH_USERS` and/or `JAEGER_UI_BASICAUTH_USERS` variables in the `.env` file.\n\nOnce you have done that, restart the container and you should now be able to log in with your new credentials.\n\n\n## Forward non-Docker requests to upstream server\nIf the container is unable to find any Docker containers that matches the incoming request, it will forward the HTTP request to the host machine on port `81`.\n\nThis allows you to for example use an Apache website running on the host machine as well as Docker applications on the same server, without forcing the user to manually specify the Apache port.\n\nTraefik will automatically upgrade the request of the user to HTTPS using the `traefik_wildcard` certificate and key stored in the `tls` directory. You generated these certificates during the setup process of this container.\n\n\n## Troubleshooting\nYou may run into issues while setting up this container, the more common issues have been documented here.\n\n### Network not found\nIf you attempt to start the container and get an error like this:\n```\nError response from daemon: network traefik-reverse-proxy not found\n```\n\nThen you most likely forgot to create the `traefik-reverse-proxy` Docker network before starting the container for the first time.\nCheck if you executed all the steps in the setup section and then try again.\n\n\n### Ports are not available (Permission denied)\nIf you are using Docker Desktop and you get an error like this:\n```\nError response from daemon: Ports are not available: exposing port TCP 127.0.0.1:443 -\u003e 0.0.0.0:0: listen tcp 127.0.0.1:443: bind: permission denied\n```\n\nThen make sure that you use the Docker engine of the host machine and not the build in one from Docker Desktop.\nThis is because ports below 1024 are considered \"privileged\" on Linux and require higher permissions that the Docker Desktop engine doesn't have.\n\nUsing the system/default Docker engine should resolve the issue.\n![Screenshot of the option you have to click in the Docker Desktop interface](./assets/docker_desktop_change_docker_engine.png)\n\n### Traefik dashboard / Jaeger UI don't accept my credentials\nIf you try to access the Traefik dashboard or Jaeger UI, and it doesn't accept any credentials, then make sure that the `.env` has been configured properly.\n\nThe credentials they use are configured in the `.env`, and if they aren't set, Traefik will not accept any entered credentials.\n\n### For very long requests I'm getting a \"Bad Gateway\" error\nThis is most likely because the request is taking too long.\n\nThe container has been configured to wait for **3 hours** before terminating the connection.\nThis limit should be enough for very large uploads, while preventing requests from hanging permanently.\n\n\u003e [!NOTE]\n\u003e It's recommended to set configure the timeout in your own application to something more reasonable.\n\u003e\n\u003e Sadly Traefik doesn't support setting a timeout per service yet, see [GitHub issue](https://github.com/traefik/traefik/issues/10962).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrazyvito11%2Ftraefik-reverse-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrazyvito11%2Ftraefik-reverse-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrazyvito11%2Ftraefik-reverse-proxy/lists"}