{"id":13394850,"url":"https://github.com/nginx-proxy/nginx-proxy","last_synced_at":"2025-12-17T00:06:34.845Z","repository":{"id":16706827,"uuid":"19463625","full_name":"nginx-proxy/nginx-proxy","owner":"nginx-proxy","description":"Automated nginx proxy for Docker containers using docker-gen","archived":false,"fork":false,"pushed_at":"2025-04-21T05:00:01.000Z","size":1693,"stargazers_count":19297,"open_issues_count":354,"forks_count":3053,"subscribers_count":263,"default_branch":"main","last_synced_at":"2025-05-05T22:42:00.350Z","etag":null,"topics":["docker","docker-gen","nginx","reverse-proxy"],"latest_commit_sha":null,"homepage":null,"language":"Python","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/nginx-proxy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2014-05-05T17:01:40.000Z","updated_at":"2025-05-05T15:21:55.000Z","dependencies_parsed_at":"2023-02-17T16:15:36.608Z","dependency_job_id":"6afecd09-3f6a-4369-81b9-dc8a267a0ba5","html_url":"https://github.com/nginx-proxy/nginx-proxy","commit_stats":{"total_commits":919,"total_committers":160,"mean_commits":5.74375,"dds":0.7519042437431991,"last_synced_commit":"d7acd931a3f14a14368ea08c9b55492217e5749f"},"previous_names":["jwilder/nginx-proxy"],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nginx-proxy%2Fnginx-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nginx-proxy%2Fnginx-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nginx-proxy%2Fnginx-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nginx-proxy%2Fnginx-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nginx-proxy","download_url":"https://codeload.github.com/nginx-proxy/nginx-proxy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253223429,"owners_count":21873798,"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","docker-gen","nginx","reverse-proxy"],"created_at":"2024-07-30T17:01:33.900Z","updated_at":"2025-12-17T00:06:34.801Z","avatar_url":"https://github.com/nginx-proxy.png","language":"Python","readme":"[![Test](https://github.com/nginx-proxy/nginx-proxy/actions/workflows/test.yml/badge.svg)](https://github.com/nginx-proxy/nginx-proxy/actions/workflows/test.yml)\n[![GitHub release](https://img.shields.io/github/v/release/nginx-proxy/nginx-proxy)](https://github.com/nginx-proxy/nginx-proxy/releases)\n[![nginx 1.27.5](https://img.shields.io/badge/nginx-1.27.5-brightgreen.svg?logo=nginx)](https://nginx.org/en/CHANGES)\n[![Docker Image Size](https://img.shields.io/docker/image-size/nginxproxy/nginx-proxy?sort=semver)](https://hub.docker.com/r/nginxproxy/nginx-proxy \"Click to view the image on Docker Hub\")\n[![Docker stars](https://img.shields.io/docker/stars/nginxproxy/nginx-proxy.svg)](https://hub.docker.com/r/nginxproxy/nginx-proxy \"DockerHub\")\n[![Docker pulls](https://img.shields.io/docker/pulls/nginxproxy/nginx-proxy.svg)](https://hub.docker.com/r/nginxproxy/nginx-proxy \"DockerHub\")\n\nnginx-proxy sets up a container running nginx and [docker-gen](https://github.com/nginx-proxy/docker-gen). docker-gen generates reverse proxy configs for nginx and reloads nginx when containers are started and stopped.\n\nSee [Automated Nginx Reverse Proxy for Docker](http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/) for why you might want to use this.\n\n### Usage\n\nTo run it:\n\n```console\ndocker run --detach \\\n    --name nginx-proxy \\\n    --publish 80:80 \\\n    --volume /var/run/docker.sock:/tmp/docker.sock:ro \\\n    nginxproxy/nginx-proxy:1.7\n```\n\nThen start any containers (here an nginx container) you want proxied with an env var `VIRTUAL_HOST=subdomain.yourdomain.com`\n\n```console\ndocker run --detach \\\n    --name your-proxied-app \\\n    --env VIRTUAL_HOST=foo.bar.com \\\n    nginx\n```\n\nProvided your DNS is setup to resolve `foo.bar.com` to the host running nginx-proxy, a request to `http://foo.bar.com` will then be routed to a container with the `VIRTUAL_HOST` env var set to `foo.bar.com` (in this case, the **your-proxied-app** container).\n\nThe containers being proxied must :\n\n- [expose](https://docs.docker.com/engine/reference/run/#expose-incoming-ports) the port to be proxied, either by using the `EXPOSE` directive in their `Dockerfile` or by using the `--expose` flag to `docker run` or `docker create`.\n- share at least one Docker network with the nginx-proxy container: by default, if you don't pass the `--net` flag when your nginx-proxy container is created, it will only be attached to the default bridge network. This means that it will not be able to connect to containers on networks other than bridge.\n\nNote: providing a port number in `VIRTUAL_HOST` isn't suported, please see [virtual ports](https://github.com/nginx-proxy/nginx-proxy/tree/main/docs#virtual-ports) or [custom external HTTP/HTTPS ports](https://github.com/nginx-proxy/nginx-proxy/tree/main/docs#custom-external-httphttps-ports) depending on what you want to achieve.\n\n### Image variants\n\nThe nginx-proxy images are available in two flavors.\n\n#### Debian based version\n\nThis image is based on the nginx:mainline image, itself based on the debian slim image.\n\n```console\ndocker pull nginxproxy/nginx-proxy:1.7\n```\n\n#### Alpine based version (`-alpine` suffix)\n\nThis image is based on the nginx:alpine image.\n\n```console\ndocker pull nginxproxy/nginx-proxy:1.7-alpine\n```\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e #### A note on `latest` and `alpine`:\n\u003e\n\u003e It is not recommended to use the `latest` (`nginxproxy/nginx-proxy`, `nginxproxy/nginx-proxy:latest`) or `alpine` (`nginxproxy/nginx-proxy:alpine`) tag for production setups.\n\u003e\n\u003e [Those tags point](https://hub.docker.com/r/nginxproxy/nginx-proxy/tags) to the latest commit in the `main` branch. They do not carry any promise of stability, and using them will probably put your nginx-proxy setup at risk of experiencing uncontrolled updates to non backward compatible versions (or versions with breaking changes). You should always specify the version you want to use explicitly to ensure your setup doesn't break when the image is updated.\n\n### Additional documentation\n\nPlease check the [docs section](https://github.com/nginx-proxy/nginx-proxy/tree/main/docs).\n\n### Powered by \n\n[![GoLand logo](https://resources.jetbrains.com/storage/products/company/brand/logos/GoLand_icon.svg)](https://www.jetbrains.com/go/)\n[![PyCharm logo](https://resources.jetbrains.com/storage/products/company/brand/logos/PyCharm_icon.svg)](https://www.jetbrains.com/pycharm/)\n","funding_links":[],"categories":["Python","HarmonyOS","Tools for Self-Hosting","Archive","Server","docker","Tools","nginx"],"sub_categories":["Windows Manager","Containers","Docker","Lua Modules"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnginx-proxy%2Fnginx-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnginx-proxy%2Fnginx-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnginx-proxy%2Fnginx-proxy/lists"}