localhost fix

This commit is contained in:
Andrey Kondratev
2025-08-29 17:33:13 +05:00
parent 9e18de85eb
commit 7cf833af6f
8 changed files with 5791 additions and 193 deletions

View File

@@ -1,7 +1,7 @@
services:
# Traefik reverse proxy
traefik:
image: traefik:v3.0
image: traefik:v3.5.1
container_name: quixotic-traefik
restart: unless-stopped
env_file:
@@ -13,7 +13,8 @@ services:
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
- --certificatesresolvers.letsencrypt.acme.tlschallenge=true
- --certificatesresolvers.letsencrypt.acme.httpchallenge=true
- --certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web
- --certificatesresolvers.letsencrypt.acme.email=${ACME_EMAIL:-admin@example.com}
- --certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json
- --log.level=INFO
@@ -73,16 +74,21 @@ services:
- downloads:/app/downloads
labels:
- "traefik.enable=true"
- "traefik.http.routers.quixotic.rule=Host(`${DOMAIN:-localhost}`)"
# HTTPS router for production domains
- "traefik.http.routers.quixotic.rule=Host(`${DOMAIN:-localhost}`) && !Host(`localhost`)"
- "traefik.http.routers.quixotic.entrypoints=websecure"
- "traefik.http.routers.quixotic.tls.certresolver=letsencrypt"
- "traefik.http.routers.quixotic.service=quixotic"
- "traefik.http.services.quixotic.loadbalancer.server.port=3000"
# HTTP to HTTPS redirect
- "traefik.http.routers.quixotic-http.rule=Host(`${DOMAIN:-localhost}`)"
# HTTP router for localhost (no SSL)
- "traefik.http.routers.quixotic-http.rule=Host(`localhost`)"
- "traefik.http.routers.quixotic-http.entrypoints=web"
- "traefik.http.routers.quixotic-http.middlewares=redirect-to-https"
- "traefik.http.routers.quixotic-http.service=quixotic"
# HTTP to HTTPS redirect only for non-localhost
- "traefik.http.routers.quixotic-redirect.rule=Host(`${DOMAIN:-localhost}`) && !Host(`localhost`)"
- "traefik.http.routers.quixotic-redirect.entrypoints=web"
- "traefik.http.routers.quixotic-redirect.middlewares=redirect-to-https"
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
- "traefik.http.services.quixotic.loadbalancer.server.port=3000"
depends_on:
traefik:
condition: service_started