From 654694f9276cd9c30a7f2690f9336cf63a0172ef Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Sun, 16 Mar 2025 21:23:16 -0700 Subject: a good starting point for traefik --- .../traefik/templates/stacks/docker-compose.yml | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 playbooks/roles/traefik/templates/stacks/docker-compose.yml (limited to 'playbooks/roles/traefik/templates/stacks/docker-compose.yml') diff --git a/playbooks/roles/traefik/templates/stacks/docker-compose.yml b/playbooks/roles/traefik/templates/stacks/docker-compose.yml new file mode 100644 index 0000000..4504af9 --- /dev/null +++ b/playbooks/roles/traefik/templates/stacks/docker-compose.yml @@ -0,0 +1,39 @@ +version: '3.8' +services: + traefik: + image: traefik:v3 + ports: + - 80:80 + - 443:443 + environment: + - TZ={{ timezone }} + - CF_API_EMAIL={{ cloudflare_email }} + - CF_DNS_API_TOKEN={{ cloudflare_dns_api_token }} + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - {{ traefik_base }}/stacks/traefik.yml:/traefik.yml + - {{ traefik_base }}/volumes/certs:/certs + networks: + - proxy + deploy: + mode: global + placement: + constraints: [node.role == manager] + labels: + - traefik.enable=true + - traefik.http.routers.dashboard.rule=Host(`traefik.{{ traefik_domain }}`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard/`)) + - traefik.http.routers.dashboard.service=api@internal + - traefik.http.routers.dashboard.tls=true + - traefik.http.routers.dashboard.tls.certresolver=letsencrypt + - traefik.http.routers.ping.rule=Host(`traefik.{{ traefik_domain }}`) && PathPrefix(`/ping`) + - traefik.http.routers.ping.service=ping@internal + - traefik.http.routers.ping.tls=true + - traefik.http.routers.ping.tls.certresolver=letsencrypt + - traefik.http.services.dashboard.loadbalancer.server.port=8080 + - traefik.http.services.ping.loadbalancer.server.port=8080 + +networks: + proxy: + name: proxy + driver: overlay + attachable: true -- cgit v1.2.3-70-g09d2