Standardize media-management stack labels

- Updated readarr, lidarr, lazylibrarian, mylar3, jellyseerr, tdarr-server, unmanic
- Applied consistent TRAEFIK CONFIGURATION headers and comments
- Removed duplicate x-dockge.url labels from jellyseerr
- All media services now use standardized label format matching other stacks
This commit is contained in:
EZ-Homelab
2026-01-23 17:24:13 -05:00
parent bd71ad38e2
commit 0f6d6c1583

View File

@@ -144,14 +144,20 @@ services:
- PGID=${PGID:-1000} - PGID=${PGID:-1000}
- TZ=${TZ} - TZ=${TZ}
labels: labels:
- homelab.category=media # TRAEFIK CONFIGURATION
- homelab.description=Ebook and audiobook management # ==========================================
- traefik.enable=true # Service metadata
- traefik.http.routers.readarr.rule=Host(`readarr.${DOMAIN}`) - "homelab.category=media"
- traefik.http.routers.readarr.entrypoints=websecure - "homelab.description=Ebook and audiobook management"
- traefik.http.routers.readarr.tls.certresolver=letsencrypt # Traefik reverse proxy (comment/uncomment to disable/enable)
- traefik.http.routers.readarr.middlewares=authelia@docker # If Traefik is on a remote server: these labels are NOT USED;
- traefik.http.services.readarr.loadbalancer.server.port=8787 # configure external yml files in /traefik/dynamic folder instead.
- "traefik.enable=true"
- "traefik.http.routers.readarr.rule=Host(`readarr.${DOMAIN}`)"
- "traefik.http.routers.readarr.entrypoints=websecure"
- "traefik.http.routers.readarr.tls.certresolver=letsencrypt"
- "traefik.http.routers.readarr.middlewares=authelia@docker"
- "traefik.http.services.readarr.loadbalancer.server.port=8787"
# Lidarr - Music collection manager # Lidarr - Music collection manager
# Access at: https://lidarr.${DOMAIN} # Access at: https://lidarr.${DOMAIN}
lidarr: lidarr:
@@ -173,14 +179,20 @@ services:
- PGID=${PGID:-1000} - PGID=${PGID:-1000}
- TZ=${TZ} - TZ=${TZ}
labels: labels:
- homelab.category=media # TRAEFIK CONFIGURATION
- homelab.description=Music collection manager # ==========================================
- traefik.enable=true # Service metadata
- traefik.http.routers.lidarr.rule=Host(`lidarr.${DOMAIN}`) - "homelab.category=media"
- traefik.http.routers.lidarr.entrypoints=websecure - "homelab.description=Music collection manager"
- traefik.http.routers.lidarr.tls.certresolver=letsencrypt # Traefik reverse proxy (comment/uncomment to disable/enable)
- traefik.http.routers.lidarr.middlewares=authelia@docker # If Traefik is on a remote server: these labels are NOT USED;
- traefik.http.services.lidarr.loadbalancer.server.port=8686 # configure external yml files in /traefik/dynamic folder instead.
- "traefik.enable=true"
- "traefik.http.routers.lidarr.rule=Host(`lidarr.${DOMAIN}`)"
- "traefik.http.routers.lidarr.entrypoints=websecure"
- "traefik.http.routers.lidarr.tls.certresolver=letsencrypt"
- "traefik.http.routers.lidarr.middlewares=authelia@docker"
- "traefik.http.services.lidarr.loadbalancer.server.port=8686"
# Lazy Librarian - Book manager # Lazy Librarian - Book manager
# Access at: https://lazylibrarian.${DOMAIN} # Access at: https://lazylibrarian.${DOMAIN}
lazylibrarian: lazylibrarian:
@@ -203,14 +215,20 @@ services:
- TZ=${TZ} - TZ=${TZ}
- DOCKER_MODS=linuxserver/mods:lazylibrarian-ffmpeg - DOCKER_MODS=linuxserver/mods:lazylibrarian-ffmpeg
labels: labels:
- homelab.category=media # TRAEFIK CONFIGURATION
- homelab.description=Book download automation # ==========================================
- traefik.enable=true # Service metadata
- traefik.http.routers.lazylibrarian.rule=Host(`lazylibrarian.${DOMAIN}`) - "homelab.category=media"
- traefik.http.routers.lazylibrarian.entrypoints=websecure - "homelab.description=Book download automation"
- traefik.http.routers.lazylibrarian.tls.certresolver=letsencrypt # Traefik reverse proxy (comment/uncomment to disable/enable)
- traefik.http.routers.lazylibrarian.middlewares=authelia@docker # If Traefik is on a remote server: these labels are NOT USED;
- traefik.http.services.lazylibrarian.loadbalancer.server.port=5299 # configure external yml files in /traefik/dynamic folder instead.
- "traefik.enable=true"
- "traefik.http.routers.lazylibrarian.rule=Host(`lazylibrarian.${DOMAIN}`)"
- "traefik.http.routers.lazylibrarian.entrypoints=websecure"
- "traefik.http.routers.lazylibrarian.tls.certresolver=letsencrypt"
- "traefik.http.routers.lazylibrarian.middlewares=authelia@docker"
- "traefik.http.services.lazylibrarian.loadbalancer.server.port=5299"
# Mylar3 - Comic book manager # Mylar3 - Comic book manager
# Access at: https://mylar.${DOMAIN} # Access at: https://mylar.${DOMAIN}
mylar3: mylar3:
@@ -232,14 +250,20 @@ services:
- PGID=${PGID:-1000} - PGID=${PGID:-1000}
- TZ=${TZ} - TZ=${TZ}
labels: labels:
- homelab.category=media # TRAEFIK CONFIGURATION
- homelab.description=Comic book collection manager # ==========================================
- traefik.enable=true # Service metadata
- traefik.http.routers.mylar.rule=Host(`mylar.${DOMAIN}`) - "homelab.category=media"
- traefik.http.routers.mylar.entrypoints=websecure - "homelab.description=Comic book collection manager"
- traefik.http.routers.mylar.tls.certresolver=letsencrypt # Traefik reverse proxy (comment/uncomment to disable/enable)
- traefik.http.routers.mylar.middlewares=authelia@docker # If Traefik is on a remote server: these labels are NOT USED;
- traefik.http.services.mylar.loadbalancer.server.port=8090 # configure external yml files in /traefik/dynamic folder instead.
- "traefik.enable=true"
- "traefik.http.routers.mylar.rule=Host(`mylar.${DOMAIN}`)"
- "traefik.http.routers.mylar.entrypoints=websecure"
- "traefik.http.routers.mylar.tls.certresolver=letsencrypt"
- "traefik.http.routers.mylar.middlewares=authelia@docker"
- "traefik.http.services.mylar.loadbalancer.server.port=8090"
# Jellyseerr - Request management for Jellyfin/Plex # Jellyseerr - Request management for Jellyfin/Plex
# Access at: https://jellyseerr.${DOMAIN} # Access at: https://jellyseerr.${DOMAIN}
jellyseerr: jellyseerr:
@@ -258,16 +282,20 @@ services:
- LOG_LEVEL=info - LOG_LEVEL=info
- TZ=${TZ} - TZ=${TZ}
labels: labels:
- homelab.category=media # TRAEFIK CONFIGURATION
- homelab.description=Media request management # ==========================================
- traefik.enable=true # Service metadata
- traefik.http.routers.jellyseerr.rule=Host(`jellyseerr.${DOMAIN}`) - "homelab.category=media"
- traefik.http.routers.jellyseerr.entrypoints=websecure - "homelab.description=Media request management"
- traefik.http.routers.jellyseerr.tls.certresolver=letsencrypt # Traefik reverse proxy (comment/uncomment to disable/enable)
- traefik.http.routers.jellyseerr.middlewares=authelia@docker # If Traefik is on a remote server: these labels are NOT USED;
- traefik.http.services.jellyseerr.loadbalancer.server.port=5055 # configure external yml files in /traefik/dynamic folder instead.
- "x-dockge.url=https://jellyseerr.${DOMAIN}" - "traefik.enable=true"
- "x-dockge.url=https://jellyseerr.${DOMAIN}" - "traefik.http.routers.jellyseerr.rule=Host(`jellyseerr.${DOMAIN}`)"
- "traefik.http.routers.jellyseerr.entrypoints=websecure"
- "traefik.http.routers.jellyseerr.tls.certresolver=letsencrypt"
- "traefik.http.routers.jellyseerr.middlewares=authelia@docker"
- "traefik.http.services.jellyseerr.loadbalancer.server.port=5055"
# FlareSolverr - Cloudflare bypass for Prowlarr # FlareSolverr - Cloudflare bypass for Prowlarr
# No web UI - used by Prowlarr # No web UI - used by Prowlarr
flaresolverr: flaresolverr:
@@ -309,14 +337,20 @@ services:
- serverPort=8266 - serverPort=8266
- webUIPort=8265 - webUIPort=8265
labels: labels:
- homelab.category=media # TRAEFIK CONFIGURATION
- homelab.description=Distributed transcoding server # ==========================================
- traefik.enable=true # Service metadata
- traefik.http.routers.tdarr.rule=Host(`tdarr.${DOMAIN}`) - "homelab.category=media"
- traefik.http.routers.tdarr.entrypoints=websecure - "homelab.description=Distributed transcoding server"
- traefik.http.routers.tdarr.tls.certresolver=letsencrypt # Traefik reverse proxy (comment/uncomment to disable/enable)
- traefik.http.routers.tdarr.middlewares=authelia@docker # If Traefik is on a remote server: these labels are NOT USED;
- traefik.http.services.tdarr.loadbalancer.server.port=8265 # configure external yml files in /traefik/dynamic folder instead.
- "traefik.enable=true"
- "traefik.http.routers.tdarr.rule=Host(`tdarr.${DOMAIN}`)"
- "traefik.http.routers.tdarr.entrypoints=websecure"
- "traefik.http.routers.tdarr.tls.certresolver=letsencrypt"
- "traefik.http.routers.tdarr.middlewares=authelia@docker"
- "traefik.http.services.tdarr.loadbalancer.server.port=8265"
# Tdarr Node - Transcoding worker # Tdarr Node - Transcoding worker
# No web UI - controlled by server # No web UI - controlled by server
tdarr-node: tdarr-node:
@@ -363,14 +397,20 @@ services:
- PGID=${PGID:-1000} - PGID=${PGID:-1000}
- TZ=${TZ} - TZ=${TZ}
labels: labels:
- homelab.category=media # TRAEFIK CONFIGURATION
- homelab.description=Library optimization and transcoding # ==========================================
- traefik.enable=true # Service metadata
- traefik.http.routers.unmanic.rule=Host(`unmanic.${DOMAIN}`) - "homelab.category=media"
- traefik.http.routers.unmanic.entrypoints=websecure - "homelab.description=Library optimization and transcoding"
- traefik.http.routers.unmanic.tls.certresolver=letsencrypt # Traefik reverse proxy (comment/uncomment to disable/enable)
- traefik.http.routers.unmanic.middlewares=authelia@docker # If Traefik is on a remote server: these labels are NOT USED;
- traefik.http.services.unmanic.loadbalancer.server.port=8888 # configure external yml files in /traefik/dynamic folder instead.
- "traefik.enable=true"
- "traefik.http.routers.unmanic.rule=Host(`unmanic.${DOMAIN}`)"
- "traefik.http.routers.unmanic.entrypoints=websecure"
- "traefik.http.routers.unmanic.tls.certresolver=letsencrypt"
- "traefik.http.routers.unmanic.middlewares=authelia@docker"
- "traefik.http.services.unmanic.loadbalancer.server.port=8888"
networks: networks:
media-network: media-network:
external: true external: true