69 lines
2.6 KiB
YAML
69 lines
2.6 KiB
YAML
networks:
|
|
traefik:
|
|
attachable: true
|
|
name: traefik
|
|
|
|
volumes:
|
|
traefik:
|
|
|
|
services:
|
|
traefik:
|
|
image: traefik:v3.3
|
|
command:
|
|
# - "--log.level=DEBUG"
|
|
- "--api.dashboard=true"
|
|
- "--api.insecure=true"
|
|
- "--providers.docker.exposedByDefault=false"
|
|
- "--providers.docker.endpoint=unix:///var/run/docker.sock"
|
|
# HTTP
|
|
- "--entrypoints.web.address=:80"
|
|
# Redirect to HTTPS
|
|
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
|
|
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
|
|
- "--entrypoints.websecure.address=:443"
|
|
# TLS
|
|
- "--certificatesresolvers.letsencrypt.acme.dnschallenge=true"
|
|
- "--certificatesresolvers.letsencrypt.acme.dnschallenge.provider=cloudflare"
|
|
- "--certificatesresolvers.letsencrypt.acme.dnschallenge.resolvers[0]=1.1.1.1"
|
|
- "--certificatesresolvers.letsencrypt.acme.dnschallenge.resolvers[1]=1.0.0.1"
|
|
- "--certificatesresolvers.letsencrypt.acme.caserver=https://acme-v02.api.letsencrypt.org/directory"
|
|
- "--certificatesresolvers.letsencrypt.acme.email=${CF_EMAIL}"
|
|
- "--certificatesresolvers.letsencrypt.acme.storage=/data/acme.json"
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
- "8080:8080"
|
|
environment:
|
|
- "CF_EMAIL=${CF_EMAIL:-tonydu121@hotmail.com}"
|
|
- "CF_DNS_API_TOKEN=${CF_DNS_API_TOKEN}"
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- traefik:/data
|
|
networks:
|
|
- traefik
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.api.rule=Host(`traefik.jumper.mnke.org`)"
|
|
- "traefik.http.routers.api.entrypoints=websecure"
|
|
- "traefik.http.routers.api.service=api@internal"
|
|
- "traefik.http.routers.api.middlewares=auth"
|
|
- "traefik.http.routers.api.tls.certresolver=letsencrypt"
|
|
- "traefik.http.routers.api.tls.domains[0].main=mnke.org"
|
|
- "traefik.http.routers.api.tls.domains[0].sans=*.mnke.org"
|
|
- "traefik.http.routers.api.tls.domains[1].main=jumper.mnke.org"
|
|
- "traefik.http.routers.api.tls.domains[1].sans=*.jumper.mnke.org"
|
|
- "traefik.http.middlewares.auth.basicauth.users=${TRAEFIK_HTPASSWD}"
|
|
- "traefik.http.services.dummy-svc.loadbalancer.server.port=9999"
|
|
|
|
whoami:
|
|
image: "traefik/whoami"
|
|
networks:
|
|
- traefik
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.whoami.rule=Host(`whoami.jumper.mnke.org`)"
|
|
- "traefik.http.routers.whoami.entrypoints=websecure"
|
|
- "traefik.http.routers.whoami.tls=true"
|
|
- "traefik.http.services.whoami.loadbalancer.server.port=80"
|
|
- "traefik.docker.network=traefik"
|