# Статический конфиг Traefik v3. # Креды Selectel для dns-challenge (lego, провайдер selectelv2) передаются через env # SELECTELV2_*_FILE (см. docker-compose.example.yml), в этом файле секретов нет. entryPoints: web: address: ":80" http: redirections: entryPoint: to: websecure scheme: https websecure: address: ":443" http: tls: certResolver: letsencrypt # Общий wildcard-сертификат: Traefik выпустит его при старте, роуты с tls: {} # на этом entrypoint будут использовать его без отдельных запросов в ACME. domains: - main: example.com sans: - "*.example.com" # Внутренний entrypoint для API. Порт НЕ публикуется (ports:), а роутер api@internal # ограничен по IP подсетью сети control (dynamic/api-internal.yml), т.к. Traefik также # подключён к сети proxy с пользовательскими контейнерами. traefik: address: ":8080" api: insecure: false # не открываем API автоматически — только через ограниченный роутер dashboard: false # демону нужен только /api/http/routers certificatesResolvers: letsencrypt: acme: email: admin@example.com storage: /letsencrypt/acme.json # Для отладки используйте staging: # caServer: https://acme-staging-v02.api.letsencrypt.org/directory dnsChallenge: provider: selectelv2 resolvers: - "1.1.1.1:53" - "8.8.8.8:53" providers: docker: exposedByDefault: false network: proxy file: directory: /etc/traefik/dynamic watch: true log: level: INFO