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