feat: traefik-selectel-dns — A-записи Selectel по роутам Traefik + CI сборка образа
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# Статический конфиг 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
|
||||
Reference in New Issue
Block a user