- Change dozzle. to dozzle.. - Ensures unique hostname when multiple servers use same domain
581 lines
14 KiB
YAML
581 lines
14 KiB
YAML
http:
|
|
routers:
|
|
backrest-${SERVER_HOSTNAME}:
|
|
rule: "Host(`backrest.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: backrest-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-backrest@file
|
|
- authelia@docker
|
|
|
|
bookstack-${SERVER_HOSTNAME}:
|
|
rule: "Host(`bookstack.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: bookstack-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-bookstack@file
|
|
- authelia@docker
|
|
|
|
bitwarden-${SERVER_HOSTNAME}:
|
|
rule: "Host(`bitwarden.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: bitwarden-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-bitwarden@file
|
|
- authelia@docker
|
|
|
|
calibre-web-${SERVER_HOSTNAME}:
|
|
rule: "Host(`calibre.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: calibre-web-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-calibre-web@file
|
|
- authelia@docker
|
|
|
|
code-${SERVER_HOSTNAME}:
|
|
rule: "Host(`code.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: code-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-code-server@file
|
|
- authelia@docker
|
|
|
|
dockge-${SERVER_HOSTNAME}:
|
|
rule: "Host(`jarvis.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: dockge-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- authelia@docker
|
|
|
|
dockhand-${SERVER_HOSTNAME}:
|
|
rule: "Host(`dockhand.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: dockhand-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- authelia@docker
|
|
|
|
dokuwiki-${SERVER_HOSTNAME}:
|
|
rule: "Host(`dokuwiki.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: dokuwiki-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-dokuwiki@file
|
|
- authelia@docker
|
|
|
|
dozzle-${SERVER_HOSTNAME}:
|
|
rule: "Host(`dozzle.${SERVER_HOSTNAME}.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: dozzle-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-dozzle@file
|
|
- authelia@docker
|
|
|
|
duplicati-${SERVER_HOSTNAME}:
|
|
rule: "Host(`duplicati.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: duplicati-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-duplicati@file
|
|
- authelia@docker
|
|
|
|
formio-${SERVER_HOSTNAME}:
|
|
rule: "Host(`formio.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: formio-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-formio@file
|
|
- authelia@docker
|
|
|
|
gitea-${SERVER_HOSTNAME}:
|
|
rule: "Host(`gitea.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: gitea-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-gitea@file
|
|
- authelia@docker
|
|
|
|
glances-${SERVER_HOSTNAME}:
|
|
rule: "Host(`glances.jarvis.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: glances-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-glances@file
|
|
- authelia@docker
|
|
|
|
homepage-${SERVER_HOSTNAME}:
|
|
rule: "Host(`homepage.jarvis.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: homepage-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- authelia@docker
|
|
|
|
homarr-${SERVER_HOSTNAME}:
|
|
rule: "Host(`homarr.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: homarr-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- authelia@docker
|
|
- sablier-${SERVER_HOSTNAME}-homarr@file
|
|
|
|
jellyfin-${SERVER_HOSTNAME}:
|
|
rule: "Host(`jellyfin.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: jellyfin-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-jellyfin@file
|
|
# No authelia middleware for media apps
|
|
|
|
kopia-${SERVER_HOSTNAME}:
|
|
rule: "Host(`kopia.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: kopia-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-kopia@file
|
|
- authelia@docker
|
|
|
|
mealie-${SERVER_HOSTNAME}:
|
|
rule: "Host(`mealie.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: mealie-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-mealie@file
|
|
- authelia@docker
|
|
|
|
motioneye-${SERVER_HOSTNAME}:
|
|
rule: "Host(`motioneye.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: motioneye-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- authelia@docker
|
|
|
|
mediawiki-${SERVER_HOSTNAME}:
|
|
rule: "Host(`mediawiki.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: mediawiki-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-mediawiki@file
|
|
- authelia@docker
|
|
|
|
nextcloud-${SERVER_HOSTNAME}:
|
|
rule: "Host(`nextcloud.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: nextcloud-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-nextcloud@file
|
|
- authelia@docker
|
|
|
|
openkm-${SERVER_HOSTNAME}:
|
|
rule: "Host(`openkm.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: openkm-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-openkm@file
|
|
- authelia@docker
|
|
|
|
openwebui-${SERVER_HOSTNAME}:
|
|
rule: "Host(`openwebui.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: openwebui-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-openwebui@file
|
|
- authelia@docker
|
|
|
|
qbittorrent-${SERVER_HOSTNAME}:
|
|
rule: "Host(`torrents.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: qbittorrent-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-arr@file
|
|
- authelia@docker
|
|
|
|
tdarr-${SERVER_HOSTNAME}:
|
|
rule: "Host(`tdarr.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: tdarr-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-arr@file
|
|
- authelia@docker
|
|
|
|
unmanic-${SERVER_HOSTNAME}:
|
|
rule: "Host(`unmanic.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: unmanic-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-unmanic@file
|
|
- authelia@docker
|
|
|
|
wordpress-${SERVER_HOSTNAME}:
|
|
rule: "Host(`knot-u.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: wordpress-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-wordpress@file
|
|
- authelia@file
|
|
|
|
# Arr Services (no SSO for media apps)
|
|
|
|
jellyseerr-${SERVER_HOSTNAME}:
|
|
rule: "Host(`jellyseerr.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: jellyseerr-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-arr@file
|
|
- authelia@docker
|
|
|
|
prowlarr-${SERVER_HOSTNAME}:
|
|
rule: "Host(`prowlarr.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: prowlarr-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-arr@file
|
|
- authelia@docker
|
|
|
|
radarr-${SERVER_HOSTNAME}:
|
|
rule: "Host(`radarr.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: radarr-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-arr@file
|
|
- authelia@docker
|
|
|
|
sonarr-${SERVER_HOSTNAME}:
|
|
rule: "Host(`sonarr.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: sonarr-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-arr@file
|
|
- authelia@docker
|
|
|
|
lidarr-${SERVER_HOSTNAME}:
|
|
rule: "Host(`lidarr.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: lidarr-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-arr@file
|
|
- authelia@docker
|
|
|
|
readarr-${SERVER_HOSTNAME}:
|
|
rule: "Host(`readarr.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: readarr-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-arr@file
|
|
- authelia@docker
|
|
|
|
mylar3-${SERVER_HOSTNAME}:
|
|
rule: "Host(`mylar3.${DOMAIN}`)"
|
|
entryPoints:
|
|
- websecure
|
|
service: mylar3-${SERVER_HOSTNAME}
|
|
tls:
|
|
certResolver: letsencrypt
|
|
middlewares:
|
|
- sablier-${SERVER_HOSTNAME}-arr@file
|
|
- authelia@docker
|
|
|
|
services:
|
|
backrest-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:9898"
|
|
passHostHeader: true
|
|
|
|
bitwarden-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8000"
|
|
passHostHeader: true
|
|
|
|
bookstack-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:6875"
|
|
passHostHeader: true
|
|
|
|
calibre-web-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8083"
|
|
passHostHeader: true
|
|
|
|
code-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8079"
|
|
passHostHeader: true
|
|
|
|
dockge-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:5001"
|
|
passHostHeader: true
|
|
|
|
dockhand-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:3003"
|
|
passHostHeader: true
|
|
|
|
dokuwiki-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8087"
|
|
passHostHeader: true
|
|
|
|
dozzle-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8085"
|
|
passHostHeader: true
|
|
|
|
duplicati-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8200"
|
|
passHostHeader: true
|
|
|
|
formio-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:3002"
|
|
passHostHeader: true
|
|
|
|
gitea-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:3010"
|
|
passHostHeader: true
|
|
|
|
glances-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:61208"
|
|
passHostHeader: true
|
|
|
|
homarr-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:7575"
|
|
passHostHeader: true
|
|
|
|
homepage-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:3000"
|
|
passHostHeader: true
|
|
|
|
jellyfin-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8096"
|
|
passHostHeader: true
|
|
|
|
kopia-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:51515"
|
|
passHostHeader: true
|
|
|
|
mealie-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:9000"
|
|
passHostHeader: true
|
|
|
|
mediawiki-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8084"
|
|
passHostHeader: true
|
|
|
|
motioneye-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8081"
|
|
passHostHeader: true
|
|
|
|
nextcloud-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8089"
|
|
passHostHeader: true
|
|
|
|
openkm-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:18080"
|
|
passHostHeader: true
|
|
|
|
openwebui-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:3000"
|
|
passHostHeader: true
|
|
|
|
qbittorrent-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8080"
|
|
passHostHeader: true
|
|
|
|
tdarr-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8265"
|
|
passHostHeader: true
|
|
|
|
unmanic-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8888"
|
|
passHostHeader: true
|
|
|
|
wordpress-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8088"
|
|
passHostHeader: true
|
|
|
|
# Arr Services
|
|
|
|
jellyseerr-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:5055"
|
|
passHostHeader: true
|
|
|
|
prowlarr-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:9696"
|
|
passHostHeader: true
|
|
|
|
radarr-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:7878"
|
|
passHostHeader: true
|
|
|
|
sonarr-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8989"
|
|
passHostHeader: true
|
|
|
|
lidarr-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8686"
|
|
passHostHeader: true
|
|
|
|
readarr-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8787"
|
|
passHostHeader: true
|
|
|
|
mylar3-${SERVER_HOSTNAME}:
|
|
loadBalancer:
|
|
servers:
|
|
- url: "http://192.168.4.11:8090"
|
|
passHostHeader: true
|