57 lines
1.9 KiB
YAML
57 lines
1.9 KiB
YAML
# Статический конфиг 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
|