Sign inSign up

ztimson/caddy-labels

By ztimson

•Updated over 1 year ago

Image
0

1.2K

ztimson/caddy-labels repository overview


Logo
⁠ztimson/caddy-labels

Caddy with Docker Label Support, Cloudflare & Route53

Version Pull Requests Issues

⁠Table of Contents

⁠About

Caddy with docker label support, Cloudflare & Route53

This image will inspect container labels & translate them into a caddy config like so:

services:
  server:
    ...
    networks:
      - proxy_network
    deploy:
      labels:
        - caddy: '*.example.com'                        # *.example.com {
        - caddy.reverse_proxy: {{upstreams 80}}         #     revere_proxy <DOCKER IP>:80
        - caddy.tls.dns: cloudflare                     #     tls { dns cloudflare } 
                                                        # }

Other useful patterns:

# Load-balance sockets
caddy.reverse_proxy.lb_policy: client_ip_hash
# Multiple domains
caddy: a.example.com b.example.com
[email protected]: a.example.com
[email protected]: b.example.com
caddy.0_reverse_proxy: '@match0 {{upstreams 80}}'
caddy.1_reverse_proxy: '@match1 {{upstreams 81}}'
# Whitelist network
[email protected]_ip: '192.168.0.0/24'
caddy.handle: '@local'
caddy.handle.reverse_proxy: '{{upstreams 3000}}'

See caddy-docker-proxy⁠ for more information

⁠Built With

Docker

⁠Setup

⁠ Production
⁠Prerequisites
⁠Instructions
  1. Create a compose file:
services:
  caddy:
    image: ztimson/caddy-labels:latest
    environment:
      CADDY_INGRESS_NETWORKS: proxy_network
      TZ: America/Toronto
    ports:
     - 80:80
     - 443:443
    volumes:
     - data:/data/caddy
     - /var/run/docker.sock:/var/run/docker.sock
    networks:
     - proxy_network
    deploy:
      mode: global
      labels:
        caddy.email: [email protected]
        # Cloudflare
        caddy.acme_dns: 'cloudflare TOKEN'
        # OR Route53
        caddy.acme_dns: route53
        caddy.acme_dns.region: 'us-east-1'
        caddy.acme_dns.access_key_id: 'TOKEN'
        caddy.acme_dns.secret_access_key: 'TOKEN'

networks:
  proxy_network:

volumes:
  data:
  1. Deploy: docker compose up
⁠ Development
⁠Prerequisites
⁠Instructions
  1. Update desired version number in Dockerfile
  2. Build docker image: docekr build -t ztimson/caddy-labels:latest .

⁠License

Copyright © 2023 Zakary Timson | Available under MIT Licensing

See the license⁠ for more information.

Tag summary

Content type

Image

Digest

sha256:167ed1516…

Size

32.8 MB

Last updated

over 1 year ago

docker pull ztimson/caddy-labels