Update Traefik dynamic config templates to match working local configuration

- Rename external-host-production.yml to local-host-production.yml
- Update local-host-production.yml with complete service list from working setup, generalized with variables
- Update sablier.yml with complete middleware list from working setup, generalized with variables
- Ensure all  and  placeholders are properly templated for script deployment
This commit is contained in:
Kelin
2026-01-28 03:29:15 -05:00
parent d62ea7f3df
commit a22b44fe0d
2 changed files with 78 additions and 16 deletions

View File

@@ -22,16 +22,16 @@ http:
- sablier-${SERVER_HOSTNAME}-bookstack@file - sablier-${SERVER_HOSTNAME}-bookstack@file
- authelia@docker - authelia@docker
vaultwarden-${SERVER_HOSTNAME}: bitwarden-${SERVER_HOSTNAME}:
rule: "Host(`vault.${DOMAIN}`)" rule: "Host(`bitwarden.${DOMAIN}`)"
entryPoints: entryPoints:
- websecure - websecure
service: vaultwarden-${SERVER_HOSTNAME} service: bitwarden-${SERVER_HOSTNAME}
tls: tls:
certResolver: letsencrypt certResolver: letsencrypt
# SSO disabled for browser extension and mobile app compatibility middlewares:
# middlewares: - sablier-${SERVER_HOSTNAME}-bitwarden@file
# - sablier-${SERVER_HOSTNAME}-vaultwarden@file - authelia@docker
calibre-web-${SERVER_HOSTNAME}: calibre-web-${SERVER_HOSTNAME}:
rule: "Host(`calibre.${DOMAIN}`)" rule: "Host(`calibre.${DOMAIN}`)"
@@ -56,7 +56,7 @@ http:
- authelia@docker - authelia@docker
dockge-${SERVER_HOSTNAME}: dockge-${SERVER_HOSTNAME}:
rule: "Host(`jarvis.${DOMAIN}`)" rule: "Host(`${SERVER_HOSTNAME}.${DOMAIN}`)"
entryPoints: entryPoints:
- websecure - websecure
service: dockge-${SERVER_HOSTNAME} service: dockge-${SERVER_HOSTNAME}
@@ -108,6 +108,18 @@ http:
- sablier-${SERVER_HOSTNAME}-duplicati@file - sablier-${SERVER_HOSTNAME}-duplicati@file
- authelia@docker - authelia@docker
ez-assistant:
rule: "Host(`assistant.${DOMAIN}`)"
entryPoints:
- websecure
tls:
certResolver: letsencrypt
middlewares:
- authelia@docker
# - sablier-${SERVER_HOSTNAME}-assistant@file
- ez-assistant-websocket
service: ez-assistant
formio-${SERVER_HOSTNAME}: formio-${SERVER_HOSTNAME}:
rule: "Host(`formio.${DOMAIN}`)" rule: "Host(`formio.${DOMAIN}`)"
entryPoints: entryPoints:
@@ -131,7 +143,7 @@ http:
- authelia@docker - authelia@docker
glances-${SERVER_HOSTNAME}: glances-${SERVER_HOSTNAME}:
rule: "Host(`glances.jarvis.${DOMAIN}`)" rule: "Host(`glances.${SERVER_HOSTNAME}.${DOMAIN}`)"
entryPoints: entryPoints:
- websecure - websecure
service: glances-${SERVER_HOSTNAME} service: glances-${SERVER_HOSTNAME}
@@ -142,7 +154,7 @@ http:
- authelia@docker - authelia@docker
homepage-${SERVER_HOSTNAME}: homepage-${SERVER_HOSTNAME}:
rule: "Host(`homepage.jarvis.${DOMAIN}`)" rule: "Host(`homepage.${SERVER_HOSTNAME}.${DOMAIN}`)"
entryPoints: entryPoints:
- websecure - websecure
service: homepage-${SERVER_HOSTNAME} service: homepage-${SERVER_HOSTNAME}
@@ -261,7 +273,7 @@ http:
- authelia@docker - authelia@docker
qbittorrent-${SERVER_HOSTNAME}: qbittorrent-${SERVER_HOSTNAME}:
rule: "Host(`torrents.${DOMAIN}`)" rule: "Host(`qbit.${DOMAIN}`)"
entryPoints: entryPoints:
- websecure - websecure
service: qbittorrent-${SERVER_HOSTNAME} service: qbittorrent-${SERVER_HOSTNAME}
@@ -293,6 +305,17 @@ http:
- sablier-${SERVER_HOSTNAME}-unmanic@file - sablier-${SERVER_HOSTNAME}-unmanic@file
- authelia@docker - authelia@docker
vaultwarden-${SERVER_HOSTNAME}:
rule: "Host(`vault.${DOMAIN}`)"
entryPoints:
- websecure
service: vaultwarden-${SERVER_HOSTNAME}
tls:
certResolver: letsencrypt
# SSO disabled for browser extension and mobile app compatibility
middlewares:
- sablier-${SERVER_HOSTNAME}-vaultwarden@file
wordpress-${SERVER_HOSTNAME}: wordpress-${SERVER_HOSTNAME}:
rule: "Host(`knot-u.${DOMAIN}`)" rule: "Host(`knot-u.${DOMAIN}`)"
entryPoints: entryPoints:
@@ -304,7 +327,6 @@ http:
- sablier-${SERVER_HOSTNAME}-wordpress@file - sablier-${SERVER_HOSTNAME}-wordpress@file
- authelia@file - authelia@file
# Arr Services (no SSO for media apps)
jellyseerr-${SERVER_HOSTNAME}: jellyseerr-${SERVER_HOSTNAME}:
rule: "Host(`jellyseerr.${DOMAIN}`)" rule: "Host(`jellyseerr.${DOMAIN}`)"
@@ -384,7 +406,23 @@ http:
- authelia@docker - authelia@docker
# Service Definitions
# Middleware Definitions
middlewares:
ez-assistant-websocket:
headers:
accessControlAllowHeaders:
- "Connection"
- "Upgrade"
accessControlAllowMethods:
- "GET"
- "POST"
- "OPTIONS"
accessControlMaxAge: 86400
services: services:
backrest-${SERVER_HOSTNAME}: backrest-${SERVER_HOSTNAME}:
loadBalancer: loadBalancer:
@@ -392,10 +430,10 @@ http:
- url: "http://192.168.4.11:9898" - url: "http://192.168.4.11:9898"
passHostHeader: true passHostHeader: true
vaultwarden-${SERVER_HOSTNAME}: bitwarden-${SERVER_HOSTNAME}:
loadBalancer: loadBalancer:
servers: servers:
- url: "http://192.168.4.11:8091" - url: "http://192.168.4.11:8000"
passHostHeader: true passHostHeader: true
bookstack-${SERVER_HOSTNAME}: bookstack-${SERVER_HOSTNAME}:
@@ -446,6 +484,12 @@ http:
- url: "http://192.168.4.11:8200" - url: "http://192.168.4.11:8200"
passHostHeader: true passHostHeader: true
ez-assistant:
loadbalancer:
servers:
- url: "http://192.168.4.11:18789" # Internal IP of ${SERVER_HOSTNAME} server
passHostHeader: true
formio-${SERVER_HOSTNAME}: formio-${SERVER_HOSTNAME}:
loadBalancer: loadBalancer:
servers: servers:
@@ -527,7 +571,7 @@ http:
openwebui-${SERVER_HOSTNAME}: openwebui-${SERVER_HOSTNAME}:
loadBalancer: loadBalancer:
servers: servers:
- url: "http://192.168.4.11:3000" - url: "http://192.168.4.11:3004"
passHostHeader: true passHostHeader: true
qbittorrent-${SERVER_HOSTNAME}: qbittorrent-${SERVER_HOSTNAME}:
@@ -548,6 +592,12 @@ http:
- url: "http://192.168.4.11:8889" - url: "http://192.168.4.11:8889"
passHostHeader: true passHostHeader: true
vaultwarden-${SERVER_HOSTNAME}:
loadBalancer:
servers:
- url: "http://192.168.4.11:8091"
passHostHeader: true
wordpress-${SERVER_HOSTNAME}: wordpress-${SERVER_HOSTNAME}:
loadBalancer: loadBalancer:
servers: servers:

View File

@@ -116,6 +116,18 @@ http:
theme: ghost theme: ghost
show-details-by-default: true show-details-by-default: true
sablier-${SERVER_HOSTNAME}-assistant:
plugin:
sablier:
sablierUrl: http://sablier-service:10000
group: ${SERVER_HOSTNAME}-assistant
sessionDuration: 30m
ignoreUserAgent: curl
dynamic:
displayName: EZ-Assistant
theme: ghost
show-details-by-default: true
sablier-${SERVER_HOSTNAME}-formio: sablier-${SERVER_HOSTNAME}-formio:
plugin: plugin:
sablier: sablier:
@@ -232,7 +244,7 @@ http:
sessionDuration: 5m sessionDuration: 5m
ignoreUserAgent: curl ignoreUserAgent: curl
dynamic: dynamic:
displayName: MediaWiki displayName: mediawiki
theme: ghost theme: ghost
show-details-by-default: true show-details-by-default: true