Toto je můj setup pomocí docker-compose pro spuštění Traefik, podporující všechny major encryption providers. Doporučuji vytvořit /opt/traefik adresář a uložit následující soubor jako /opt/traefik/docker-compose.yml. Tento config má file a docker providers povolené by default.
docker-compose.yml
services:
traefik:
image: "traefik:v3.2"
network_mode: "host"
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.file.directory=/etc/traefik/conf"
- "--providers.file.watch=true"
- "--entrypoints.web.address=:80"
- "--entryPoints.web.http.redirections.entryPoint.to=websecure"
- "--entryPoints.web.http.redirections.entryPoint.scheme=https"
- "--entrypoints.websecure.address=:443"
- "--entryPoints.websecure.http3"
- "--entryPoints.websecure.http3.advertisedport=443"
- "--log.level=info"
- "--serversTransport.insecureSkipVerify=true"
#
- "--certificatesresolvers.cloudflare-ec384.acme.dnschallenge=true"
- "--certificatesresolvers.cloudflare-ec384.acme.dnschallenge.provider=cloudflare"
- "--certificatesresolvers.cloudflare-ec384.acme.dnschallenge.resolvers=1.1.1.1:53,1.0.0.1:53"
- "--certificatesresolvers.cloudflare-ec384.acme.caserver=https://acme-v02.api.letsencrypt.org/directory"
- "--certificatesresolvers.cloudflare-ec384.acme.email=letsencrypt@mydomain.com"
- "--certificatesresolvers.cloudflare-ec384.acme.KeyType=EC384"
- "--certificatesresolvers.cloudflare-ec384.acme.storage=/letsencrypt/acme.json"
#
- "--certificatesresolvers.cloudflare.acme.dnschallenge=true"
- "--certificatesresolvers.cloudflare.acme.dnschallenge.provider=cloudflare"
- "--certificatesresolvers.cloudflare.acme.dnschallenge.resolvers=1.1.1.1:53,1.0.0.1:53"
- "--certificatesresolvers.cloudflare.acme.caserver=https://acme-v02.api.letsencrypt.org/directory"
- "--certificatesresolvers.cloudflare.acme.email=letsencrypt@mydomain.com"
- "--certificatesresolvers.cloudflare.acme.KeyType=EC256"
- "--certificatesresolvers.cloudflare.acme.storage=/letsencrypt/acme.json"
#
- "--certificatesresolvers.cloudflare-staging.acme.dnschallenge=true"
- "--certificatesresolvers.cloudflare-staging.acme.dnschallenge.provider=cloudflare"
- "--certificatesresolvers.cloudflare-staging.acme.dnschallenge.resolvers=1.1.1.1:53,1.0.0.1:53"
- "--certificatesresolvers.cloudflare-staging.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
- "--certificatesresolvers.cloudflare-staging.acme.email=letsencrypt@mydomain.com"
- "--certificatesresolvers.cloudflare-staging.acme.KeyType=EC256"
- "--certificatesresolvers.cloudflare-staging.acme.storage=/letsencrypt/acme.json"
#
- "--certificatesresolvers.alpn-ec384.acme.tlsChallenge=true"
- "--certificatesresolvers.alpn-ec384.acme.caserver=https://acme-v02.api.letsencrypt.org/directory"
- "--certificatesresolvers.alpn-ec384.acme.email=letsencrypt@mydomain.com"
- "--certificatesresolvers.alpn-ec384.acme.KeyType=EC384"
- "--certificatesresolvers.alpn-ec384.acme.storage=/letsencrypt/acme.json"
#
- "--certificatesresolvers.alpn.acme.tlsChallenge=true"
- "--certificatesresolvers.alpn.acme.caserver=https://acme-v02.api.letsencrypt.org/directory"
- "--certificatesresolvers.alpn.acme.email=letsencrypt@mydomain.com"
- "--certificatesresolvers.alpn.acme.KeyType=EC256"
- "--certificatesresolvers.alpn.acme.storage=/letsencrypt/acme.json"
#
- "--certificatesresolvers.alpn-staging.acme.tlsChallenge=true"
- "--certificatesresolvers.alpn-staging.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
- "--certificatesresolvers.alpn-staging.acme.email=letsencrypt@mydomain.com"
- "--certificatesresolvers.alpn-staging.acme.KeyType=EC256"
- "--certificatesresolvers.alpn-staging.acme.storage=/letsencrypt/acme.json"
environment:
- CLOUDFLARE_EMAIL=cloudflare@mydomain.com
- CLOUDFLARE_API_KEY=XYZABC123
volumes:
- "./letsencrypt:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./conf:/etc/traefik/conf:ro"Nahraďte letsencrypt@mydomain.com Email adresou, na kterou registrovat certifikáty. Také se ujistěte, že změníte
cloudflare_env_vars.yml
- CLOUDFLARE_EMAIL=cloudflare@mydomain.com
- CLOUDFLARE_API_KEY=XYZABC123Volitelně vytvořte Pilot token a nastavte ho (nezapomeňte odkomentovat řádek) pomocí
pilot_token_example.txt
# - "--pilot.token=PILOT_TOKEN_HERE"Nyní udělejte službu autostart při bootu (a spusťte ji hned) pomocí metody detailované v docker-compose systemd .service generátor: Spusťte následující v /opt/traefik
create_docker_compose_service.sh
curl -fsSL https://techoverflow.net/scripts/create-docker-compose-service.sh | sudo bash /dev/stdinBudeme detailovat, jak získat přístup k Traefik API v followup příspěvcích.
Pokud vám tento článek pomohl, zvažte, zda mi nekoupíte kávu nebo nepřispějete přes PayPal na podporu výzkumu a publikování nových článků na TechOverflow