{"id":19435528,"url":"https://github.com/cssnr/docker-nginx-proxy","last_synced_at":"2026-06-13T02:01:55.924Z","repository":{"id":251847495,"uuid":"838621009","full_name":"cssnr/docker-nginx-proxy","owner":"cssnr","description":"Docker Nginx Proxy","archived":false,"fork":false,"pushed_at":"2026-05-18T04:30:26.000Z","size":25,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-05-18T06:41:27.742Z","etag":null,"topics":["docker"],"latest_commit_sha":null,"homepage":"https://cssnr.github.io","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/cssnr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"ko_fi":"cssnr"}},"created_at":"2024-08-06T03:03:26.000Z","updated_at":"2026-05-18T04:27:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"b9e585e3-4832-4110-8e9d-f23b1a537e9d","html_url":"https://github.com/cssnr/docker-nginx-proxy","commit_stats":null,"previous_names":["cssnr/docker-nginx-proxy"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/cssnr/docker-nginx-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cssnr%2Fdocker-nginx-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cssnr%2Fdocker-nginx-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cssnr%2Fdocker-nginx-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cssnr%2Fdocker-nginx-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cssnr","download_url":"https://codeload.github.com/cssnr/docker-nginx-proxy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cssnr%2Fdocker-nginx-proxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34269364,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"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":["docker"],"created_at":"2024-11-10T15:06:50.351Z","updated_at":"2026-06-13T02:01:55.918Z","avatar_url":"https://github.com/cssnr.png","language":"Shell","funding_links":["https://ko-fi.com/cssnr"],"categories":[],"sub_categories":[],"readme":"[![Image Size](https://badges.cssnr.com/ghcr/size/cssnr/docker-nginx-proxy)](https://github.com/cssnr/docker-nginx-proxy/pkgs/container/docker-nginx-proxy)\n[![Image Latest](https://badges.cssnr.com/ghcr/tags/cssnr/docker-nginx-proxy/latest)](https://github.com/cssnr/docker-nginx-proxy/pkgs/container/docker-nginx-proxy)\n[![GitHub Tag Major](https://img.shields.io/github/v/tag/cssnr/docker-nginx-proxy?sort=semver\u0026filter=!*.*\u0026logo=git\u0026logoColor=white\u0026labelColor=585858\u0026label=%20)](https://github.com/cssnr/docker-nginx-proxy/tags)\n[![GitHub Tag Minor](https://img.shields.io/github/v/tag/cssnr/docker-nginx-proxy?sort=semver\u0026filter=!*.*.*\u0026logo=git\u0026logoColor=white\u0026labelColor=585858\u0026label=%20)](https://github.com/cssnr/docker-nginx-proxy/releases)\n[![GitHub Tag Release](https://img.shields.io/github/v/tag/cssnr/docker-nginx-proxy?sort=semver\u0026filter=!*.*.*.*\u0026logo=git\u0026logoColor=white\u0026labelColor=585858\u0026label=%20)](https://github.com/cssnr/docker-nginx-proxy/releases/latest)\n[![GitHub Release Version](https://img.shields.io/github/v/release/cssnr/docker-nginx-proxy?logo=github)](https://github.com/cssnr/docker-nginx-proxy/releases/latest)\n[![Workflow Build](https://img.shields.io/github/actions/workflow/status/cssnr/docker-nginx-proxy/build.yaml?logo=cachet\u0026label=build)](https://github.com/cssnr/docker-nginx-proxy/actions/workflows/build.yaml)\n[![Workflow Lint](https://img.shields.io/github/actions/workflow/status/cssnr/docker-nginx-proxy/lint.yaml?logo=cachet\u0026label=lint)](https://github.com/cssnr/docker-nginx-proxy/actions/workflows/lint.yaml)\n[![GitHub Last Commit](https://img.shields.io/github/last-commit/cssnr/docker-nginx-proxy?logo=github\u0026label=updated)](https://github.com/cssnr/docker-nginx-proxy/pulse)\n[![GitHub Contributors](https://img.shields.io/github/contributors-anon/cssnr/docker-nginx-proxy?logo=github)](https://github.com/cssnr/docker-nginx-proxy/graphs/contributors)\n[![GitHub Repo Size](https://img.shields.io/github/repo-size/cssnr/docker-nginx-proxy?logo=bookstack\u0026logoColor=white\u0026label=repo%20size)](https://github.com/cssnr/docker-nginx-proxy?tab=readme-ov-file#readme)\n[![GitHub Top Language](https://img.shields.io/github/languages/top/cssnr/docker-nginx-proxy?logo=htmx)](https://github.com/cssnr/docker-nginx-proxy/tree/master/src)\n[![GitHub Discussions](https://img.shields.io/github/discussions/cssnr/docker-nginx-proxy?logo=github)](https://github.com/cssnr/docker-nginx-proxy/discussions)\n[![GitHub Forks](https://img.shields.io/github/forks/cssnr/docker-nginx-proxy?style=flat\u0026logo=github)](https://github.com/cssnr/docker-nginx-proxy/forks)\n[![GitHub Repo Stars](https://img.shields.io/github/stars/cssnr/docker-nginx-proxy?style=flat\u0026logo=github)](https://github.com/cssnr/docker-nginx-proxy/stargazers)\n[![GitHub Org Stars](https://img.shields.io/github/stars/cssnr?style=flat\u0026logo=github\u0026label=org%20stars)](https://cssnr.github.io/)\n[![Discord](https://img.shields.io/discord/899171661457293343?logo=discord\u0026logoColor=white\u0026label=discord\u0026color=7289da)](https://discord.gg/wXy6m2X8wY)\n[![Ko-fi](https://img.shields.io/badge/Ko--fi-72a5f2?logo=kofi\u0026label=support)](https://ko-fi.com/cssnr)\n\n# Docker Nginx Proxy\n\nDocker Nginx Proxy Container.\n\nThis works quite well as is...\n\n```yaml\nservices:\n  nginx:\n    image: ghcr.io/cssnr/docker-nginx-proxy:latest\n    environment:\n      - SERVICE_NAME=app # name of app container\n      - SERVICE_PORT=8000 # port exposed on app\n    ports:\n      - '${PORT:-80}:80' # Host PORT : Container (must be :80)\n\n  app:\n    image: your-app-image # listens on port 8000\n```\n\n## Options\n\n| Variable     |    Default     | Description\u0026nbsp;of\u0026nbsp;Environment\u0026nbsp;Variable |\n| :----------- | :------------: | :------------------------------------------------- |\n| SERVICE_NAME |     `app`      | Hostname (service name) of container               |\n| SERVICE_PORT |     `8000`     | Port service/container is listening on             |\n| GZIP_TYPES   |       -        | Nginx content gzip_types to compress               |\n| GZIP_LENGTH  |     `1000`     | Minimum content size to compress                   |\n| BASIC_AUTH   |       -        | Basic auth file contents                           |\n| BASIC_REALM  | `Unauthorized` | Minimum content size to compress                   |\n\n#### Basic Auth\n\n```shell\n$ htpasswd -nb user pass\nuser:$apr1$XFVN0nJA$IgZxtMHVAeA.Pu7ufU7/I0\n```\n\nReplace all `$` with `$$` for docker-compose.yaml files.  \nUse `\\n` for newlines to add multiple credentials.\n\n```yaml\nenvironment:\n  BASIC_AUTH: 'user:$$apr1$$XFVN0nJA$$IgZxtMHVAeA.Pu7ufU7/I0\\nuser2:$$apr1$$vswJgdwo$$2XkDOrvJFQ2pKwrXqGeWM0'\n```\n\nAI is Retarded.\n\n## Examples\n\nIf your app container is called `app` and listens on `3000` this will reverse proxy it to the `PORT` exposed on nginx.\n\n```yaml\nservices:\n  nginx:\n    image: ghcr.io/cssnr/docker-nginx-proxy:latest\n    environment:\n      - SERVICE_NAME=app\n      - SERVICE_PORT=3000\n    ports:\n      - '${PORT:-80}:80'\n\n  app:\n    image: ghcr.io/smashedr/node-badges:latest\n    command: 'npm start'\n\n  redis:\n    image: redis:6-alpine\n    command: 'redis-server --appendonly yes'\n```\n\nWith the healthcheck:\n\n```yaml\nservices:\n  nginx:\n    image: ghcr.io/cssnr/docker-nginx-proxy:latest\n    environment:\n      - SERVICE_NAME=app\n      - SERVICE_PORT=3000\n    healthcheck:\n      test: ['CMD-SHELL', 'curl -sf localhost:80/health-check || exit 1']\n      interval: 30s\n      timeout: 10s\n      retries: 3\n      start_period: 30s\n    ports:\n      - '${PORT:-80}:80'\n```\n\nFirst example, but deployed to a [Docker Swarm](https://docs.docker.com/engine/swarm/) cluster using [Traefik](https://github.com/traefik/traefik).\n\n```yaml\nversion: '3.8'\n\nservices:\n  nginx:\n    image: ghcr.io/cssnr/docker-nginx-proxy:latest\n    environment:\n      - SERVICE_NAME=app\n      - SERVICE_PORT=3000\n    deploy:\n      mode: global\n      resources:\n        limits:\n          cpus: '1.0'\n          memory: 64M\n      labels:\n        - 'traefik.enable=true'\n        - 'traefik.docker.network=traefik-public'\n        - 'traefik.constraint-label=traefik-public'\n        - 'traefik.http.routers.${STACK_NAME?err}-http.rule=Host(`${TRAEFIK_HOST?err}`)'\n        - 'traefik.http.routers.${STACK_NAME}-http.entrypoints=http'\n        - 'traefik.http.routers.${STACK_NAME}-http.middlewares=${STACK_NAME}-http-redirect'\n        - 'traefik.http.middlewares.${STACK_NAME}-http-redirect.redirectscheme.scheme=https'\n        - 'traefik.http.middlewares.${STACK_NAME}-http-redirect.redirectscheme.permanent=true'\n        - 'traefik.http.routers.${STACK_NAME}-https.rule=Host(`${TRAEFIK_HOST}`)'\n        - 'traefik.http.routers.${STACK_NAME}-https.entrypoints=https'\n        - 'traefik.http.routers.${STACK_NAME}-https.tls=true'\n        - 'traefik.http.services.${STACK_NAME}.loadbalancer.server.port=80'\n        - 'traefik.http.services.${STACK_NAME}.loadbalancer.server.scheme=http'\n    healthcheck:\n      test: ['CMD-SHELL', 'curl -sf localhost:80/health-check || exit 1']\n      interval: 30s\n      timeout: 10s\n      retries: 3\n      start_period: 30s\n    depends_on:\n      - app\n    networks:\n      - internal\n      - traefik-public\n\n  app:\n    image: ghcr.io/smashedr/node-badges:${VERSION:-latest}\n    command: 'npm start'\n    deploy:\n      mode: global\n      resources:\n        limits:\n          cpus: '2.0'\n          memory: 256M\n    healthcheck:\n      test: ['CMD-SHELL', 'curl -sf localhost:3000/app-health-check || exit 1']\n      interval: 30s\n      timeout: 10s\n      retries: 3\n      start_period: 30s\n    depends_on:\n      - redis\n    networks:\n      - internal\n\n  redis:\n    image: redis:6-alpine\n    command: 'redis-server --appendonly yes'\n    deploy:\n      replicas: 1\n      resources:\n        limits:\n          cpus: '1.0'\n          memory: 128M\n    volumes:\n      - redis_data:/data\n    networks:\n      - internal\n\nvolumes:\n  redis_data:\n\nnetworks:\n  internal:\n    driver: overlay\n  traefik-public:\n    external: true\n```\n\n## Support\n\nPlease let us know if you run into any [issues](https://github.com/cssnr/docker-nginx-proxy/issues)\nor want to see [new features](https://github.com/cssnr/docker-nginx-proxy/discussions/categories/feature-requests)...\n\nFor general help or to request a feature:\n\n- Q\u0026A Discussion: https://github.com/cssnr/docker-nginx-proxy/discussions/categories/q-a\n- Request a Feature: https://github.com/cssnr/docker-nginx-proxy/discussions/categories/feature-requests\n\nIf you are experiencing an issue/bug or getting unexpected results:\n\n- Report an Issue: https://github.com/cssnr/docker-nginx-proxy/issues\n- Chat with us on Discord: https://discord.gg/wXy6m2X8wY\n- Provide General Feedback: [https://cssnr.github.io/feedback/](https://cssnr.github.io/feedback/)\n\n# Contributing\n\nPlease consider making a donation to support the development of this project\nand [additional](https://cssnr.com/) open source projects.\n\n[![Ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/cssnr)\n\nIf you would like to submit a PR, please review the [CONTRIBUTING.md](#contributing-ov-file).\n\nFor a full list of current projects visit: [https://cssnr.github.io/](https://cssnr.github.io/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcssnr%2Fdocker-nginx-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcssnr%2Fdocker-nginx-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcssnr%2Fdocker-nginx-proxy/lists"}