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