fix: standardize remaining TRAEFIK CONFIGURATION labels

- Update infrastructure services (dozzle, glances, code-server) to new format
- Update dashboards (homarr) to new format
- Update utilities (backrest, duplicati) to new format
- Update productivity (nextcloud) to new format
- Add authelia middleware to all services except Jellyfin
- Ensure consistent label structure across all stacks
This commit is contained in:
EZ-Homelab
2026-01-23 19:22:33 -05:00
parent 436ff0d035
commit 576419443d
4 changed files with 45 additions and 54 deletions

View File

@@ -84,21 +84,20 @@ services:
environment: environment:
- TZ=${TZ} - TZ=${TZ}
labels: labels:
# TRAEFIK & SABLIER CONFIGURATION # TRAEFIK CONFIGURATION
# ==========================================
# Service metadata # Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=dashboard" - "homelab.category=dashboard"
- "homelab.description=Modern homelab dashboard" - "homelab.description=Modern homelab dashboard"
# Traefik reverse proxy (comment/uncomment to disable/enable)
# If Traefik is on a remote server: these labels are NOT USED;
# configure external yml files in /traefik/dynamic folder instead.
- "traefik.enable=true" - "traefik.enable=true"
# Router configuration
- "traefik.http.routers.homarr.rule=Host(`homarr.${DOMAIN}`)" - "traefik.http.routers.homarr.rule=Host(`homarr.${DOMAIN}`)"
- "traefik.http.routers.homarr.entrypoints=websecure" - "traefik.http.routers.homarr.entrypoints=websecure"
- "traefik.http.routers.homarr.tls=true" - "traefik.http.routers.homarr.tls=true"
- "traefik.http.routers.homarr.middlewares=authelia@docker" - "traefik.http.routers.homarr.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.homarr.loadbalancer.server.port=7575" - "traefik.http.services.homarr.loadbalancer.server.port=7575"
# Sablier lazy loading (enabled by default - comment out to disable) # Sablier configuration
- "sablier.enable=true" - "sablier.enable=true"
- "sablier.group=${SERVER_HOSTNAME}-homarr" - "sablier.group=${SERVER_HOSTNAME}-homarr"
- "sablier.start-on-demand=true" - "sablier.start-on-demand=true"

View File

@@ -149,21 +149,20 @@ services:
- DOZZLE_TAILSIZE=300 - DOZZLE_TAILSIZE=300
- DOZZLE_FILTER=status=running - DOZZLE_FILTER=status=running
labels: labels:
# TRAEFIK & SABLIER CONFIGURATION # TRAEFIK CONFIGURATION
# ==========================================
# Service metadata # Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=infrastructure" - "homelab.category=infrastructure"
- "homelab.description=Real-time Docker log viewer" - "homelab.description=Real-time Docker log viewer"
# Traefik reverse proxy (comment/uncomment to disable/enable)
# If Traefik is on a remote server: these labels are NOT USED;
# configure external yml files in /traefik/dynamic folder instead.
- "traefik.enable=true" - "traefik.enable=true"
# Router configuration
- "traefik.http.routers.dozzle.rule=Host(`dozzle.${SERVER_HOSTNAME}.${DOMAIN}`)" - "traefik.http.routers.dozzle.rule=Host(`dozzle.${SERVER_HOSTNAME}.${DOMAIN}`)"
- "traefik.http.routers.dozzle.entrypoints=websecure" - "traefik.http.routers.dozzle.entrypoints=websecure"
- "traefik.http.routers.dozzle.tls=true" - "traefik.http.routers.dozzle.tls=true"
- "traefik.http.routers.dozzle.middlewares=authelia@docker" - "traefik.http.routers.dozzle.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.dozzle.loadbalancer.server.port=8085" - "traefik.http.services.dozzle.loadbalancer.server.port=8085"
# Sablier lazy loading (enabled by default - comment out to disable) # Sablier configuration
- "sablier.enable=true" - "sablier.enable=true"
- "sablier.group=${SERVER_HOSTNAME}-dozzle" - "sablier.group=${SERVER_HOSTNAME}-dozzle"
- "sablier.start-on-demand=true" - "sablier.start-on-demand=true"
@@ -196,21 +195,20 @@ services:
environment: environment:
- GLANCES_OPT=-w - GLANCES_OPT=-w
labels: labels:
# TRAEFIK & SABLIER CONFIGURATION # TRAEFIK CONFIGURATION
# ==========================================
# Service metadata # Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=infrastructure" - "homelab.category=infrastructure"
- "homelab.description=System and Docker monitoring" - "homelab.description=System and Docker monitoring"
# Traefik reverse proxy (comment/uncomment to disable/enable)
# If Traefik is on a remote server: these labels are NOT USED;
# configure external yml files in /traefik/dynamic folder instead.
- "traefik.enable=true" - "traefik.enable=true"
# Router configuration
- "traefik.http.routers.glances.rule=Host(`glances.${SERVER_HOSTNAME}.${DOMAIN}`)" - "traefik.http.routers.glances.rule=Host(`glances.${SERVER_HOSTNAME}.${DOMAIN}`)"
- "traefik.http.routers.glances.entrypoints=websecure" - "traefik.http.routers.glances.entrypoints=websecure"
- "traefik.http.routers.glances.tls=true" - "traefik.http.routers.glances.tls=true"
- "traefik.http.routers.glances.middlewares=authelia@docker" - "traefik.http.routers.glances.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.glances.loadbalancer.server.port=61208" - "traefik.http.services.glances.loadbalancer.server.port=61208"
# Sablier lazy loading (enabled by default - comment out to disable) # Sablier configuration
- "sablier.enable=true" - "sablier.enable=true"
- "sablier.group=${SERVER_HOSTNAME}-glances" - "sablier.group=${SERVER_HOSTNAME}-glances"
- "sablier.start-on-demand=true" - "sablier.start-on-demand=true"
@@ -247,21 +245,20 @@ services:
- PASSWORD=${CODE_SERVER_PASSWORD} - PASSWORD=${CODE_SERVER_PASSWORD}
- SUDO_PASSWORD=${CODE_SERVER_SUDO_PASSWORD} - SUDO_PASSWORD=${CODE_SERVER_SUDO_PASSWORD}
labels: labels:
# TRAEFIK & SABLIER CONFIGURATION # TRAEFIK CONFIGURATION
# ==========================================
# Service metadata # Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=infrastructure" - "homelab.category=infrastructure"
- "homelab.description=VS Code in browser" - "homelab.description=VS Code in browser"
# Traefik reverse proxy (comment/uncomment to disable/enable)
# If Traefik is on a remote server: these labels are NOT USED;
# configure external yml files in /traefik/dynamic folder instead.
- "traefik.enable=true" - "traefik.enable=true"
# Router configuration
- "traefik.http.routers.code-server.rule=Host(`code.${DOMAIN}`)" - "traefik.http.routers.code-server.rule=Host(`code.${DOMAIN}`)"
- "traefik.http.routers.code-server.entrypoints=websecure" - "traefik.http.routers.code-server.entrypoints=websecure"
- "traefik.http.routers.code-server.tls.certresolver=letsencrypt" - "traefik.http.routers.code-server.tls.certresolver=letsencrypt"
- "traefik.http.routers.code-server.middlewares=authelia@docker" - "traefik.http.routers.code-server.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.code-server.loadbalancer.server.port=8443" - "traefik.http.services.code-server.loadbalancer.server.port=8443"
# Sablier lazy loading (enabled by default - comment out to disable) # Sablier configuration
- "sablier.enable=true" - "sablier.enable=true"
- "sablier.group=${SERVER_HOSTNAME}-code-server" - "sablier.group=${SERVER_HOSTNAME}-code-server"
- "sablier.start-on-demand=true" - "sablier.start-on-demand=true"

View File

@@ -57,21 +57,20 @@ services:
depends_on: depends_on:
- nextcloud-db - nextcloud-db
labels: labels:
# TRAEFIK & SABLIER CONFIGURATION # TRAEFIK CONFIGURATION
# ==========================================
# Service metadata # Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=productivity" - "homelab.category=productivity"
- "homelab.description=File sync and collaboration" - "homelab.description=File sync and collaboration"
# Traefik reverse proxy (comment/uncomment to disable/enable)
# If Traefik is on a remote server: these labels are NOT USED;
# configure external yml files in /traefik/dynamic folder instead.
- "traefik.enable=true" - "traefik.enable=true"
# Router configuration
- "traefik.http.routers.nextcloud.rule=Host(`nextcloud.${DOMAIN}`)" - "traefik.http.routers.nextcloud.rule=Host(`nextcloud.${DOMAIN}`)"
- "traefik.http.routers.nextcloud.entrypoints=websecure" - "traefik.http.routers.nextcloud.entrypoints=websecure"
- "traefik.http.routers.nextcloud.tls.certresolver=letsencrypt" - "traefik.http.routers.nextcloud.tls.certresolver=letsencrypt"
- "traefik.http.routers.nextcloud.middlewares=authelia@docker" - "traefik.http.routers.nextcloud.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.nextcloud.loadbalancer.server.port=80" - "traefik.http.services.nextcloud.loadbalancer.server.port=80"
# Sablier lazy loading (enabled by default - comment out to disable) # Sablier configuration
- "sablier.enable=true" - "sablier.enable=true"
- "sablier.group=${SERVER_HOSTNAME}-nextcloud" - "sablier.group=${SERVER_HOSTNAME}-nextcloud"
- "sablier.start-on-demand=true" - "sablier.start-on-demand=true"

View File

@@ -42,26 +42,23 @@ services:
- BACKREST_CONFIG=/config/config.json - BACKREST_CONFIG=/config/config.json
- TZ=${TZ} - TZ=${TZ}
labels: labels:
# ========================================== # TRAEFIK CONFIGURATION
# TRAEFIK & SABLIER CONFIGURATION
# ==========================================
# Service metadata # Service metadata
- homelab.category=utilities - "com.centurylinklabs.watchtower.enable=true"
- homelab.description=Backup management with restic - "homelab.category=utilities"
- "homelab.description=Backup management with restic"
# Traefik reverse proxy (uncomment to enable) - "traefik.enable=true"
- traefik.enable=true # Router configuration
- traefik.http.routers.backrest.rule=Host(`backrest.${DOMAIN}`) - "traefik.http.routers.backrest.rule=Host(`backrest.${DOMAIN}`)"
- traefik.http.routers.backrest.entrypoints=websecure - "traefik.http.routers.backrest.entrypoints=websecure"
- traefik.http.routers.backrest.tls.certresolver=letsencrypt - "traefik.http.routers.backrest.tls.certresolver=letsencrypt"
- traefik.http.routers.backrest.middlewares=authelia@docker - "traefik.http.routers.backrest.middlewares=authelia@docker"
- traefik.http.services.backrest.loadbalancer.server.port=9898 # Service configuration
- "traefik.http.services.backrest.loadbalancer.server.port=9898"
# Sablier lazy loading (uncomment to enable) # Sablier configuration
- sablier.enable=true - "sablier.enable=true"
- sablier.group=${SERVER_HOSTNAME}-backrest - "sablier.group=${SERVER_HOSTNAME}-backrest"
- sablier.start-on-demand=true - "sablier.start-on-demand=true"
- "x-dockge.url=https://backrest.${DOMAIN}" - "x-dockge.url=https://backrest.${DOMAIN}"
- "x-dockge.url=https://backrest.${DOMAIN}" - "x-dockge.url=https://backrest.${DOMAIN}"
# Duplicati - Backup solution # Duplicati - Backup solution
@@ -85,19 +82,18 @@ services:
- PGID=${PGID:-1000} - PGID=${PGID:-1000}
- TZ=${TZ} - TZ=${TZ}
labels: labels:
# TRAEFIK & SABLIER CONFIGURATION # TRAEFIK CONFIGURATION
# ==========================================
# Service metadata # Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=utilities" - "homelab.category=utilities"
- "homelab.description=Backup software with encryption" - "homelab.description=Backup software with encryption"
# Traefik reverse proxy (comment/uncomment to disable/enable)
# If Traefik is on a remote server: these labels are NOT USED;
# configure external yml files in /traefik/dynamic folder instead.
- "traefik.enable=true" - "traefik.enable=true"
# Router configuration
- "traefik.http.routers.duplicati.rule=Host(`duplicati.${DOMAIN}`)" - "traefik.http.routers.duplicati.rule=Host(`duplicati.${DOMAIN}`)"
- "traefik.http.routers.duplicati.entrypoints=websecure" - "traefik.http.routers.duplicati.entrypoints=websecure"
- "traefik.http.routers.duplicati.tls.certresolver=letsencrypt" - "traefik.http.routers.duplicati.tls.certresolver=letsencrypt"
- "traefik.http.routers.duplicati.middlewares=authelia@docker" - "traefik.http.routers.duplicati.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.duplicati.loadbalancer.server.port=8200" - "traefik.http.services.duplicati.loadbalancer.server.port=8200"
# Form.io - Form builder # Form.io - Form builder
# Uncomment and configure if formio/formio image becomes available # Uncomment and configure if formio/formio image becomes available