diff --git a/docs/02-setup/04-env-variables.md b/docs/02-setup/04-env-variables.md index 1001c888..d169d518 100644 --- a/docs/02-setup/04-env-variables.md +++ b/docs/02-setup/04-env-variables.md @@ -60,6 +60,10 @@ SITES=`mysite.example.com` SITES=`{any:.+}` ``` +> Note: `SITES` currently supplies the host list that goes into the `Host(...)` rules. Once the Traefik v3 transition is completed, the plan is to switch to `SITES_RULE` (full rule expression) and deprecate `SITES` to map the Traefik Rule Syntax. + +> Currently the used syntax is pinned to v2 via `--core.defaultRuleSyntax=v2`). + --- ## Site Configuration diff --git a/docs/02-setup/05-overrides.md b/docs/02-setup/05-overrides.md index 9188489d..783868f7 100644 --- a/docs/02-setup/05-overrides.md +++ b/docs/02-setup/05-overrides.md @@ -4,6 +4,8 @@ Overrides extend the base compose.yaml with additional services or modify existi docker compose -f compose.yaml -f overrides/compose.mariadb.yaml -f overrides/compose.redis.yaml config > compose.custom.yaml ``` +Note: The Traefik-based overrides uses Traefik v3.6 and `--core.defaultRuleSyntax=v2` for compatibility with existing traefik v2.11. This flag is temporary and will be removed once the transition to v3.6 is completed. + | Overrider | Purpose | Additional Info | | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | | **Database** | | | diff --git a/overrides/compose.https.yaml b/overrides/compose.https.yaml index 9096e560..8e70fdfa 100644 --- a/overrides/compose.https.yaml +++ b/overrides/compose.https.yaml @@ -8,11 +8,14 @@ services: - traefik.http.routers.frontend-http.rule=Host(${SITES:?List of sites not set}) proxy: - image: traefik:v2.11 + image: traefik:v3.6 restart: unless-stopped command: - --providers.docker=true - --providers.docker.exposedbydefault=false + # Keep v2 rule syntax for now + # Ensure compatibility with existing labels (will be removed if v3 transition is complete) + - --core.defaultRuleSyntax=v2 - --entrypoints.web.address=:80 - --entrypoints.web.http.redirections.entrypoint.to=websecure - --entrypoints.web.http.redirections.entrypoint.scheme=https diff --git a/overrides/compose.proxy.yaml b/overrides/compose.proxy.yaml index 32ce9fab..6b668437 100644 --- a/overrides/compose.proxy.yaml +++ b/overrides/compose.proxy.yaml @@ -7,10 +7,13 @@ services: - traefik.http.routers.frontend-http.rule=HostRegexp(`{any:.+}`) proxy: - image: traefik:v2.11 + image: traefik:v3.6 command: - --providers.docker - --providers.docker.exposedbydefault=false + # Keep v2 rule syntax for now + # Ensure compatibility with existing labels (will be removed if v3 transition is complete) + - --core.defaultRuleSyntax=v2 - --entrypoints.web.address=:80 ports: - ${HTTP_PUBLISH_PORT:-80}:80 diff --git a/overrides/compose.traefik-ssl.yaml b/overrides/compose.traefik-ssl.yaml index b83cb8e4..2770ce5b 100644 --- a/overrides/compose.traefik-ssl.yaml +++ b/overrides/compose.traefik-ssl.yaml @@ -23,6 +23,9 @@ services: - --providers.docker=true # Do not expose all Docker services, only the ones explicitly exposed - --providers.docker.exposedbydefault=false + # Keep v2 rule syntax for now + # Ensure compatibility with existing labels (will be removed if v3 transition is complete) + - --core.defaultRuleSyntax=v2 # Create an entrypoint http listening on port 80 - --entrypoints.http.address=:80 # Create an entrypoint https listening on port 443 diff --git a/overrides/compose.traefik.yaml b/overrides/compose.traefik.yaml index 7765e19d..6e34acf4 100644 --- a/overrides/compose.traefik.yaml +++ b/overrides/compose.traefik.yaml @@ -1,6 +1,6 @@ services: traefik: - image: "traefik:v2.11" + image: "traefik:v3.6" restart: unless-stopped labels: # Enable Traefik for this service, to make it available in the public network @@ -24,6 +24,9 @@ services: - --providers.docker=true # Do not expose all Docker services, only the ones explicitly exposed - --providers.docker.exposedbydefault=false + # Keep v2 rule syntax for now + # Ensure compatibility with existing labels (will be removed if v3 transition is complete) + - --core.defaultRuleSyntax=v2 # Create an entrypoint http listening on port 80 - --entrypoints.http.address=:80 # Enable the access log, with HTTP requests