traefik

Created Diff never expires
12 remoções
Linhas
Total
Removido
Palavras
Total
Removido
Para continuar usando este recurso, atualize para
Diffchecker logo
Diffchecker Pro
53 linhas
13 adições
Linhas
Total
Adicionado
Palavras
Total
Adicionado
Para continuar usando este recurso, atualize para
Diffchecker logo
Diffchecker Pro
53 linhas
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