{"id":13556516,"url":"https://github.com/drlogout/caddy-proxy","last_synced_at":"2026-03-01T02:36:21.860Z","repository":{"id":185404297,"uuid":"86462988","full_name":"drlogout/caddy-proxy","owner":"drlogout","description":"Automatic Caddy reverse proxy configurations for docker containers","archived":false,"fork":false,"pushed_at":"2017-09-17T17:22:41.000Z","size":11,"stargazers_count":19,"open_issues_count":0,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-26T04:48:11.855Z","etag":null,"topics":["caddy","caddyserver","docker","docker-gen","letsencrypt","proxy"],"latest_commit_sha":null,"homepage":"","language":null,"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/drlogout.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}},"created_at":"2017-03-28T13:24:24.000Z","updated_at":"2025-03-07T09:20:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"3ec371fe-c37f-420c-8e09-b50a4b30882d","html_url":"https://github.com/drlogout/caddy-proxy","commit_stats":null,"previous_names":["drlogout/caddy-proxy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drlogout%2Fcaddy-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drlogout%2Fcaddy-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drlogout%2Fcaddy-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drlogout%2Fcaddy-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drlogout","download_url":"https://codeload.github.com/drlogout/caddy-proxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246984447,"owners_count":20864443,"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":["caddy","caddyserver","docker","docker-gen","letsencrypt","proxy"],"created_at":"2024-08-01T12:03:53.082Z","updated_at":"2026-03-01T02:36:21.815Z","avatar_url":"https://github.com/drlogout.png","language":null,"funding_links":[],"categories":["Others","docker"],"sub_categories":[],"readme":"# caddy-proxy\n\ncaddy-proxy automatically generates [Caddy](https://caddyserver.com/) reverse proxy configurations for docker containers like [jwilder/nginx-proxy](https://github.com/jwilder/nginx-proxy) for Nginx.\n\n## Usage\n\nThe template generation only works with docker-compose file version 2.\n\nFirst, you'll need to create an external docker network named 'caddy-proxy'.\n\n```bash\n$ docker network create -d bridge caddy-proxy\n```\n\nThen Clone this repository.\n\n```bash\n$ git clone https://github.com/drlogout/caddy-proxy\n$ cd caddy-proxy\n```\n\nSet a proper email address for `LETSENCRYPT_EMAIL` in `caddy/docker-compose.yml`.\n\n```yaml\nversion: \"2\"\n\nnetworks:\n  proxy-tier:\n    external:\n      name: caddy-proxy\n\nservices:\n  caddy:\n    container_name: caddy\n    image: drlogout/caddy:0.9.5\n    # remove -ca=https://acme-staging.api.letsencrypt.org/directory in production\n    command: --conf /etc/caddy/config/Caddyfile --log stdout -ca=https://acme-staging.api.letsencrypt.org/directory\n    ports:\n      - 80:80\n      - 443:443\n    volumes:\n      - \"../volumes/config:/etc/caddy/config\"\n      - \"../volumes/certs:/etc/caddy/certs\"\n    environment:\n      - CADDYPATH=/etc/caddy/certs\n    networks:\n      - proxy-tier\n    restart: always\n\n  caddy-gen:\n    container_name: caddy-gen\n    image: jwilder/docker-gen:0.7.3\n    volumes:\n      - \"/var/run/docker.sock:/tmp/docker.sock:ro\"\n      - \"../volumes/templates:/etc/docker-gen/templates:ro\"\n    volumes_from:\n      - caddy\n    environment:\n      LETSENCRYPT_EMAIL: \"\u003cYOUR EMAIL\u003e\"\n    command: -notify \"docker restart caddy\" -watch -wait 5s:30s /etc/docker-gen/templates/caddy.tmpl /etc/caddy/config/Caddyfile\n    restart: always\n\n```\n\nAnd start the `caddy` and `caddy-gen` containers.\n\n```bash\n$ cd caddy\n$ docker-compose up -d\n```\n\nThen set the `VIRTUAL_HOST` variable to a fully qualified domain name in `app1/docker-compose.yml` (resp. in `app2/docker-compose.yml`).\n\n```yaml\nversion: \"2\"\n\nnetworks:\n  proxy-tier:\n    external:\n      name: caddy-proxy\n\nservices:\n  app1:\n    container_name: app1\n    image: httpd\n    networks:\n      - proxy-tier\n    environment:\n      VIRTUAL_HOST: \"\u003cYOUR FQDN\u003e\"\n      VIRTUAL_NETWORK: \"caddy-proxy\"\n      VIRTUAL_PORT: 80\n    restart: always\n\n```\n\nAnd start the `app1` container (resp. `app2`).\n\n```bash\n$ cd ../app1\n$ docker-compose up -d\n```\n\nPlease note, that this `caddy` configuration uses the [Letsencrypt staging environment](https://letsencrypt.org/docs/staging-environment/). This means your browser will warn you about an insecure connection. For use in production remove the `-ca=https://acme-staging.api.letsencrypt.org/directory` flag in `caddy/docker-compose.yaml`.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrlogout%2Fcaddy-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrlogout%2Fcaddy-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrlogout%2Fcaddy-proxy/lists"}