traefik

Created Diff never expires
12 削除
合計
削除
単語
合計
削除
この機能を引き続き使用するには、アップグレードしてください
Diffchecker logo
Diffchecker Pro
53
13 追加
合計
追加
単語
合計
追加
この機能を引き続き使用するには、アップグレードしてください
Diffchecker logo
Diffchecker Pro
53
services:
services:
traefik:
traefik:
image: traefik:v3.3.5
image: traefik:v3.3.5
container_name: traefik
container_name: traefik
command:
command:
- "--api.dashboard=true"
- "--api.dashboard=true"
- "--providers.docker=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--entrypoints.websecure.address=:443"
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.web.http.redirections.entrypoint.permanent=true"
- "--entrypoints.web.http.redirections.entrypoint.permanent=true"
- "--certificatesresolvers.myresolver.acme.email=mymail@yandex.ru"
- "--certificatesresolvers.myresolver.acme.email=mymail@yandex.ru"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
labels:
labels:
- "traefik.enable=true"
- "traefik.enable=true"


# Middleware для редиректа www → корень (работает на обоих entrypoints)
- "traefik.http.middlewares.redirect-www-to-root.redirectregex.regex=^https?://www\\.(.+)"
- "traefik.http.middlewares.redirect-www-to-root.redirectregex.regex=^https?://www\\.(.+)"
- "traefik.http.middlewares.redirect-www-to-root.redirectregex.replacement=https://$1"
- "traefik.http.middlewares.redirect-www-to-root.redirectregex.replacement=https://$1"
- "traefik.http.middlewares.redirect-www-to-root.redirectregex.permanent=true"
- "traefik.http.middlewares.redirect-www-to-root.redirectregex.permanent=true"


- "traefik.http.routers.redirect-www.rule=HostRegexp(`www.{domain:[^/]+}`)"
# Правило для HTTP (порт 80) - сначала www→корень, потом HTTP→HTTPS
- "traefik.http.routers.redirect-www.entrypoints=web"
- "traefik.http.routers.redirect-www-http.rule=HostRegexp(`www.{domain:[^/]+}`)"
- "traefik.http.routers.redirect-www.middlewares=redirect-www-to-root"
- "traefik.http.routers.redirect-www-http.entrypoints=web"
- "traefik.http.routers.redirect-www.tls.certresolver=myresolver"
- "traefik.http.routers.redirect-www-http.middlewares=redirect-www-to-root,redirect-to-https@docker"

# Правило для HTTPS (порт 443) - только www→корень
- "traefik.http.routers.redirect-www-https.rule=HostRegexp(`www.{domain:[^/]+}`)"
- "traefik.http.routers.redirect-www-https.entrypoints=websecure"
- "traefik.http.routers.redirect-www-https.middlewares=redirect-www-to-root"
- "traefik.http.routers.redirect-www-https.tls=true"


# Дашборд Traefik
- "traefik.http.routers.traefik.rule=Host(`traefik-server.mystudio.studio`)"
- "traefik.http.routers.traefik.rule=Host(`traefik-server.mystudio.studio`)"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.routers.traefik.entrypoints=websecure"
- "traefik.http.routers.traefik.entrypoints=websecure"
- "traefik.http.routers.traefik.tls.certresolver=myresolver"
- "traefik.http.routers.traefik.tls.certresolver=myresolver"
- "traefik.http.routers.traefik.middlewares=auth"
- "traefik.http.routers.traefik.middlewares=auth"
- "traefik.http.middlewares.auth.basicauth.users=admin:$$apr.....K.k/"
- "traefik.http.middlewares.auth.basicauth.users=admin:$$apr.....K.k/"
- "traefik.http.services.traefik.loadbalancer.server.port=8080"
- "traefik.http.services.traefik.loadbalancer.server.port=8080"
ports:
ports:
- "80:80"
- "80:80"
- "443:443"
- "443:443"
- "8080:8080"
- "8080:8080"
restart: always
restart: always
volumes:
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- traefik_certificates:/letsencrypt
- traefik_certificates:/letsencrypt
networks:
networks:
- traefik_network
- traefik_network

volumes:
traefik_certificates:
name: traefik_certificates

networks:
traefik_network:
name: traefik_network