feat: traefik-selectel-dns — A-записи Selectel по роутам Traefik + CI сборка образа
Build / Tests (push) Successful in 13s
Build / Build image (push) Failing after 15s
Build / Notify on failure (push) Failing after 0s

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-21 21:50:07 +07:00
co-authored by Claude Sonnet 5
commit 273cd54415
35 changed files with 3722 additions and 0 deletions
+56
View File
@@ -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