Implement fixes from test results

- Update Docker install to use curl method
- Rename ADMIN_PASSWORD to AUTHELIA_ADMIN_PASSWORD
- Fix Authelia password hash generation (remove grep, no quotes)
- Revert compose labels to single quotes
- Ensure users_database.yml has unquoted password placeholder
This commit is contained in:
Kelin
2026-02-02 20:59:07 -05:00
parent 7e4799f27e
commit 3d5979b5f1
19 changed files with 1232 additions and 467 deletions

View File

@@ -26,15 +26,15 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=alternatives"
- "homelab.description=Docker container management UI (Alternative to Dockge)"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- "traefik.http.routers.portainer.rule=Host(`portainer.${DOMAIN}`)"
- "traefik.http.routers.portainer.entrypoints=websecure"
- "traefik.http.routers.portainer.tls.certresolver=letsencrypt"
- "traefik.http.routers.portainer.middlewares=authelia@docker"
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
- 'homelab.category=alternatives"
- 'homelab.description=Docker container management UI (Alternative to Dockge)"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.portainer.rule=Host(`portainer.${DOMAIN}`)"
- 'traefik.http.routers.portainer.entrypoints=websecure"
- 'traefik.http.routers.portainer.tls.certresolver=letsencrypt"
- 'traefik.http.routers.portainer.middlewares=authelia@docker"
- 'traefik.http.services.portainer.loadbalancer.server.port=9000"
# Authentik - Alternative SSO/Identity Provider with Web UI
# Access at: https://authentik.${DOMAIN}
@@ -66,15 +66,15 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=alternatives"
- "homelab.description=SSO/Identity provider with web UI (Alternative to Authelia)"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- "traefik.http.routers.authentik.rule=Host(`authentik.${DOMAIN}`)"
- "traefik.http.routers.authentik.entrypoints=websecure"
- "traefik.http.routers.authentik.tls.certresolver=letsencrypt"
- "traefik.http.routers.authentik.middlewares=authelia@docker"
- "traefik.http.services.authentik.loadbalancer.server.port=9000"
- 'homelab.category=alternatives"
- 'homelab.description=SSO/Identity provider with web UI (Alternative to Authelia)"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.authentik.rule=Host(`authentik.${DOMAIN}`)"
- 'traefik.http.routers.authentik.entrypoints=websecure"
- 'traefik.http.routers.authentik.tls.certresolver=letsencrypt"
- 'traefik.http.routers.authentik.middlewares=authelia@docker"
- 'traefik.http.services.authentik.loadbalancer.server.port=9000"
depends_on:
- authentik-db
- authentik-redis
@@ -104,8 +104,8 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=alternatives"
- "homelab.description=Authentik background worker"
- 'homelab.category=alternatives"
- 'homelab.description=Authentik background worker"
depends_on:
- authentik-db
- authentik-redis
@@ -128,8 +128,8 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=alternatives"
- "homelab.description=Authentik database"
- 'homelab.category=alternatives"
- 'homelab.description=Authentik database"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${AUTHENTIK_DB_USER}"]
interval: 10s
@@ -151,8 +151,8 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=alternatives"
- "homelab.description=Authentik cache and messaging"
- 'homelab.category=alternatives"
- 'homelab.description=Authentik cache and messaging"
healthcheck:
test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
interval: 10s
@@ -202,15 +202,15 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=alternatives"
- "homelab.description=Alternative media streaming server to Jellyfin"
- 'homelab.category=alternatives"
- 'homelab.description=Alternative media streaming server to Jellyfin"
# Traefik labels - NO Authelia for app access
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- "traefik.http.routers.plex.rule=Host(`plex.${DOMAIN}`)"
- "traefik.http.routers.plex.entrypoints=websecure"
- "traefik.http.routers.plex.tls.certresolver=letsencrypt"
- "traefik.http.services.plex.loadbalancer.server.port=32400"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.plex.rule=Host(`plex.${DOMAIN}`)"
- 'traefik.http.routers.plex.entrypoints=websecure"
- 'traefik.http.routers.plex.tls.certresolver=letsencrypt"
- 'traefik.http.services.plex.loadbalancer.server.port=32400"
- "x-dockge.url=https://plex.${DOMAIN}"
- "x-dockge.url=https://plex.${DOMAIN}"

View File

@@ -27,7 +27,7 @@ services:
image: traefik:v3
container_name: traefik
restart: unless-stopped
command: ["--configFile=/config/traefik.yml"]
command: ['--configFile=/config/traefik.yml']
environment:
- DUCKDNS_TOKEN=41ef7faa-fc93-41d2-a32f-340fd2b75b2f
ports:
@@ -45,14 +45,14 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=core"
- "homelab.description=Reverse proxy and SSL termination"
- "traefik.enable=true"
- "traefik.http.routers.traefik.rule=Host(`traefik.${DOMAIN}`)"
- "traefik.http.routers.traefik.entrypoints=websecure"
- "traefik.http.routers.traefik.tls.certresolver=letsencrypt"
- "traefik.http.routers.traefik.middlewares=authelia@docker"
- "traefik.http.services.traefik.loadbalancer.server.port=8080"
- 'homelab.category=core'
- 'homelab.description=Reverse proxy and SSL termination'
- 'traefik.enable=true'
- 'traefik.http.routers.traefik.rule=Host(`traefik.${DOMAIN}`)'
- 'traefik.http.routers.traefik.entrypoints=websecure'
- 'traefik.http.routers.traefik.tls.certresolver=letsencrypt'
- 'traefik.http.routers.traefik.middlewares=authelia@docker'
- 'traefik.http.services.traefik.loadbalancer.server.port=8080'
authelia:
# Single sign-on authentication service - must always run for user authentication
@@ -62,7 +62,7 @@ services:
environment:
- TZ=America/New_York
ports:
- "9091:9091"
- '9091:9091'
volumes:
- ./authelia/config:/config
- ./authelia/secrets:/secrets
@@ -74,21 +74,21 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=core"
- "homelab.description=Single sign-on authentication"
- 'homelab.category=core'
- 'homelab.description=Single sign-on authentication'
# 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.http.routers.authelia.rule=Host(`auth.${DOMAIN}`)"
- "traefik.http.routers.authelia.entrypoints=websecure"
- "traefik.http.routers.authelia.tls.certresolver=letsencrypt"
- "traefik.http.routers.authelia.service=authelia"
- "traefik.http.services.authelia.loadbalancer.server.port=9091"
- 'traefik.enable=true'
- 'traefik.http.routers.authelia.rule=Host(`auth.${DOMAIN}`)'
- 'traefik.http.routers.authelia.entrypoints=websecure'
- 'traefik.http.routers.authelia.tls.certresolver=letsencrypt'
- 'traefik.http.routers.authelia.service=authelia'
- 'traefik.http.services.authelia.loadbalancer.server.port=9091'
# Authelia forward auth middleware configuration
- "traefik.http.middlewares.authelia.forwardauth.address=http://authelia:9091/api/verify?rd=https://auth.${DOMAIN}/"
- "traefik.http.middlewares.authelia.forwardauth.authResponseHeaders=X-Secret"
- "traefik.http.middlewares.authelia.forwardauth.trustForwardHeader=true"
- 'traefik.http.middlewares.authelia.forwardauth.address=http://authelia:9091/api/verify?rd=https://auth.${DOMAIN}/'
- 'traefik.http.middlewares.authelia.forwardauth.authResponseHeaders=X-Secret'
- 'traefik.http.middlewares.authelia.forwardauth.trustForwardHeader=true'
# Sablier - Lazy loading service for Docker containers
# Controls startup/shutdown of lazy-loaded services, must always run
@@ -118,8 +118,8 @@ services:
- 10000:10000
labels:
# Service metadata
- "homelab.category=core"
- "homelab.description=Lazy loading service for Docker containers"
- 'homelab.category=core'
- 'homelab.description=Lazy loading service for Docker containers'
networks:
traefik-network:

View File

@@ -38,20 +38,20 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=dashboard"
- "homelab.description=Application dashboard"
- 'homelab.category=dashboard"
- 'homelab.description=Application dashboard"
# Traefik reverse proxy (comment/uncomment to disable/enable)
# IMPORTANT: On REMOTE SERVERS (where Traefik runs elsewhere):
# - COMMENT OUT all traefik.* labels below (don't delete them)
# - Routes are configured via external YAML files on the core server
# - This prevents conflicts between Docker labels and file provider
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- "traefik.http.routers.homepage.rule=Host(`homepage.${DOMAIN}`)"
- "traefik.http.routers.homepage.entrypoints=websecure"
- "traefik.http.routers.homepage.tls=true"
- "traefik.http.routers.homepage.middlewares=authelia@docker"
- "traefik.http.services.homepage.loadbalancer.server.port=3000"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.homepage.rule=Host(`homepage.${DOMAIN}`)"
- 'traefik.http.routers.homepage.entrypoints=websecure"
- 'traefik.http.routers.homepage.tls=true"
- 'traefik.http.routers.homepage.middlewares=authelia@docker"
- 'traefik.http.services.homepage.loadbalancer.server.port=3000"
# Sablier lazy loading (disabled by default - uncomment to enable)
# - "sablier.enable=true"
# - "sablier.group=jasper-homarr"
@@ -94,16 +94,16 @@ services:
# TRAEFIK CONFIGURATION
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=dashboard"
- "homelab.description=Modern homelab dashboard"
- "traefik.enable=true"
- 'homelab.category=dashboard"
- 'homelab.description=Modern homelab dashboard"
- 'traefik.enable=true"
# Router configuration
- "traefik.http.routers.homarr.rule=Host(`homarr.${DOMAIN}`)"
- "traefik.http.routers.homarr.entrypoints=websecure"
- "traefik.http.routers.homarr.tls=true"
- "traefik.http.routers.homarr.middlewares=authelia@docker"
- 'traefik.http.routers.homarr.rule=Host(`homarr.${DOMAIN}`)"
- 'traefik.http.routers.homarr.entrypoints=websecure"
- 'traefik.http.routers.homarr.tls=true"
- '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 configuration
- "sablier.enable=true"
- "sablier.group=jasper-homarr"

View File

@@ -37,18 +37,18 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=infrastructure"
- "homelab.description=Docker Compose stack manager (PRIMARY)"
- 'homelab.category=infrastructure"
- 'homelab.description=Docker Compose stack manager (PRIMARY)"
# 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.docker.network=traefik-network"
- "traefik.http.routers.dockge.rule=Host(`dockge.${DOMAIN}`)"
- "traefik.http.routers.dockge.entrypoints=websecure"
- "traefik.http.routers.dockge.tls.certresolver=letsencrypt"
- "traefik.http.routers.dockge.middlewares=authelia@docker"
- "traefik.http.services.dockge.loadbalancer.server.port=5001"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.dockge.rule=Host(`dockge.${DOMAIN}`)"
- 'traefik.http.routers.dockge.entrypoints=websecure"
- 'traefik.http.routers.dockge.tls.certresolver=letsencrypt"
- 'traefik.http.routers.dockge.middlewares=authelia@docker"
- 'traefik.http.services.dockge.loadbalancer.server.port=5001"
networks:
homelab-network:

View File

@@ -28,8 +28,8 @@ services:
- TZ=America/New_York
privileged: true
labels:
- "homelab.category=iot"
- "homelab.description=Home automation platform"
- 'homelab.category=iot"
- 'homelab.description=Home automation platform"
# Note: network_mode: host means Traefik can't proxy this directly
# Use Traefik's file provider or external host routing
@@ -63,18 +63,18 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=iot"
- "homelab.description=ESP8266/ESP32 firmware manager"
- 'homelab.category=iot"
- 'homelab.description=ESP8266/ESP32 firmware manager"
# 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.docker.network=traefik-network"
- "traefik.http.routers.esphome.rule=Host(`esphome.${DOMAIN}`)"
- "traefik.http.routers.esphome.entrypoints=websecure"
- "traefik.http.routers.esphome.tls.certresolver=letsencrypt"
- "traefik.http.routers.esphome.middlewares=authelia@docker"
- "traefik.http.services.esphome.loadbalancer.server.port=6052"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.esphome.rule=Host(`esphome.${DOMAIN}`)"
- 'traefik.http.routers.esphome.entrypoints=websecure"
- 'traefik.http.routers.esphome.tls.certresolver=letsencrypt"
- 'traefik.http.routers.esphome.middlewares=authelia@docker"
- 'traefik.http.services.esphome.loadbalancer.server.port=6052"
# TasmoAdmin - Tasmota device manager
tasmoadmin:
@@ -94,18 +94,18 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=iot"
- "homelab.description=Tasmota device management"
- 'homelab.category=iot"
- 'homelab.description=Tasmota device management"
# 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.docker.network=traefik-network"
- "traefik.http.routers.tasmoadmin.rule=Host(`tasmoadmin.${DOMAIN}`)"
- "traefik.http.routers.tasmoadmin.entrypoints=websecure"
- "traefik.http.routers.tasmoadmin.tls.certresolver=letsencrypt"
- "traefik.http.routers.tasmoadmin.middlewares=authelia@docker"
- "traefik.http.services.tasmoadmin.loadbalancer.server.port=80"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.tasmoadmin.rule=Host(`tasmoadmin.${DOMAIN}`)"
- 'traefik.http.routers.tasmoadmin.entrypoints=websecure"
- 'traefik.http.routers.tasmoadmin.tls.certresolver=letsencrypt"
- 'traefik.http.routers.tasmoadmin.middlewares=authelia@docker"
- 'traefik.http.services.tasmoadmin.loadbalancer.server.port=80"
# MotionEye - Video surveillance
motioneye:
@@ -126,18 +126,18 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=iot"
- "homelab.description=Video surveillance system"
- 'homelab.category=iot"
- 'homelab.description=Video surveillance system"
# 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.docker.network=traefik-network"
- "traefik.http.routers.motioneye.rule=Host(`motioneye.${DOMAIN}`)"
- "traefik.http.routers.motioneye.entrypoints=websecure"
- "traefik.http.routers.motioneye.tls.certresolver=letsencrypt"
- "traefik.http.routers.motioneye.middlewares=authelia@docker"
- "traefik.http.services.motioneye.loadbalancer.server.port=8765"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.motioneye.rule=Host(`motioneye.${DOMAIN}`)"
- 'traefik.http.routers.motioneye.entrypoints=websecure"
- 'traefik.http.routers.motioneye.tls.certresolver=letsencrypt"
- 'traefik.http.routers.motioneye.middlewares=authelia@docker"
- 'traefik.http.services.motioneye.loadbalancer.server.port=8765"
# Node-RED - Flow-based automation (Home Assistant addon alternative)
nodered:
@@ -166,18 +166,18 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=iot"
- "homelab.description=Flow-based automation programming"
- 'homelab.category=iot"
- 'homelab.description=Flow-based automation programming"
# 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.docker.network=traefik-network"
- "traefik.http.routers.nodered.rule=Host(`nodered.${DOMAIN}`)"
- "traefik.http.routers.nodered.entrypoints=websecure"
- "traefik.http.routers.nodered.tls.certresolver=letsencrypt"
- "traefik.http.routers.nodered.middlewares=authelia@docker"
- "traefik.http.services.nodered.loadbalancer.server.port=1880"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.nodered.rule=Host(`nodered.${DOMAIN}`)"
- 'traefik.http.routers.nodered.entrypoints=websecure"
- 'traefik.http.routers.nodered.tls.certresolver=letsencrypt"
- 'traefik.http.routers.nodered.middlewares=authelia@docker"
- 'traefik.http.services.nodered.loadbalancer.server.port=1880"
# Mosquitto - MQTT broker (Home Assistant addon alternative)
# Used by: Home Assistant, ESPHome, Tasmota devices
@@ -195,8 +195,8 @@ services:
- ./mosquitto/data:/mosquitto/data
- ./mosquitto/log:/mosquitto/log
labels:
- "homelab.category=iot"
- "homelab.description=MQTT message broker"
- 'homelab.category=iot"
- 'homelab.description=MQTT message broker"
# Zigbee2MQTT - Zigbee to MQTT bridge (DISABLED - requires USB adapter)
# NOTE: Requires USB Zigbee adapter (e.g., ConBee II, Sonoff ZBDongle)
@@ -219,14 +219,14 @@ services:
# environment:
# - TZ=America/New_York
# labels:
# - "homelab.category=iot"
# - "homelab.description=Zigbee to MQTT bridge"
# - "traefik.enable=true"
# - "traefik.http.routers.zigbee2mqtt.rule=Host(`zigbee2mqtt.${DOMAIN}`)"
# - "traefik.http.routers.zigbee2mqtt.entrypoints=websecure"
# - "traefik.http.routers.zigbee2mqtt.tls.certresolver=letsencrypt"
# - "traefik.http.routers.zigbee2mqtt.middlewares=authelia@docker"
# - "traefik.http.services.zigbee2mqtt.loadbalancer.server.port=8080"
# - 'homelab.category=iot"
# - 'homelab.description=Zigbee to MQTT bridge"
# - 'traefik.enable=true"
# - 'traefik.http.routers.zigbee2mqtt.rule=Host(`zigbee2mqtt.${DOMAIN}`)"
# - 'traefik.http.routers.zigbee2mqtt.entrypoints=websecure"
# - 'traefik.http.routers.zigbee2mqtt.tls.certresolver=letsencrypt"
# - 'traefik.http.routers.zigbee2mqtt.middlewares=authelia@docker"
# - 'traefik.http.services.zigbee2mqtt.loadbalancer.server.port=8080"
networks:
homelab-network:

View File

@@ -73,20 +73,20 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=infrastructure"
- "homelab.description=Network-wide ad blocking and DNS"
- 'homelab.category=infrastructure"
- 'homelab.description=Network-wide ad blocking and DNS"
# Traefik reverse proxy (comment/uncomment to disable/enable)
# IMPORTANT: On REMOTE SERVERS (where Traefik runs elsewhere):
# - COMMENT OUT all traefik.* labels below (don't delete them)
# - Routes are configured via external YAML files on the core server
# - This prevents conflicts between Docker labels and file provider
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- "traefik.http.routers.pihole.rule=Host(`pihole.${DOMAIN}`)"
- "traefik.http.routers.pihole.entrypoints=websecure"
- "traefik.http.routers.pihole.tls.certresolver=letsencrypt"
- "traefik.http.routers.pihole.middlewares=authelia@docker"
- "traefik.http.services.pihole.loadbalancer.server.port=80"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.pihole.rule=Host(`pihole.${DOMAIN}`)"
- 'traefik.http.routers.pihole.entrypoints=websecure"
- 'traefik.http.routers.pihole.tls.certresolver=letsencrypt"
- 'traefik.http.routers.pihole.middlewares=authelia@docker"
- 'traefik.http.services.pihole.loadbalancer.server.port=80"
# Watchtower - Automatic container updates
watchtower:
@@ -105,8 +105,8 @@ services:
- WATCHTOWER_NOTIFICATIONS=shoutrrr
- WATCHTOWER_NOTIFICATION_URL=${WATCHTOWER_NOTIFICATION_URL}
labels:
- "homelab.category=infrastructure"
- "homelab.description=Automatic Docker container updates"
- 'homelab.category=infrastructure"
- 'homelab.description=Automatic Docker container updates"
# Dozzle - Real-time Docker log viewer
# Uses Sablier lazy loading - starts on-demand, stops after 5min inactivity
@@ -144,17 +144,17 @@ services:
# TRAEFIK CONFIGURATION
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=infrastructure"
- "homelab.description=Real-time Docker log viewer"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- 'homelab.category=infrastructure"
- 'homelab.description=Real-time Docker log viewer"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
# Router configuration
- "traefik.http.routers.dozzle.rule=Host(`dozzle.jasper.${DOMAIN}`)"
- "traefik.http.routers.dozzle.entrypoints=websecure"
- "traefik.http.routers.dozzle.tls=true"
- "traefik.http.routers.dozzle.middlewares=authelia@docker"
- 'traefik.http.routers.dozzle.rule=Host(`dozzle.jasper.${DOMAIN}`)"
- 'traefik.http.routers.dozzle.entrypoints=websecure"
- 'traefik.http.routers.dozzle.tls=true"
- '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 configuration
- "sablier.enable=true"
- "sablier.group=jasper-dozzle"
@@ -196,17 +196,17 @@ services:
# TRAEFIK CONFIGURATION
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=infrastructure"
- "homelab.description=System and Docker monitoring"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- 'homelab.category=infrastructure"
- 'homelab.description=System and Docker monitoring"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
# Router configuration
- "traefik.http.routers.glances.rule=Host(`glances.jasper.${DOMAIN}`)"
- "traefik.http.routers.glances.entrypoints=websecure"
- "traefik.http.routers.glances.tls=true"
- "traefik.http.routers.glances.middlewares=authelia@docker"
- 'traefik.http.routers.glances.rule=Host(`glances.jasper.${DOMAIN}`)"
- 'traefik.http.routers.glances.entrypoints=websecure"
- 'traefik.http.routers.glances.tls=true"
- '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 configuration
- "sablier.enable=true"
- "sablier.group=jasper-glances"
@@ -252,17 +252,17 @@ services:
# TRAEFIK CONFIGURATION
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=infrastructure"
- "homelab.description=VS Code in browser"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- 'homelab.category=infrastructure"
- 'homelab.description=VS Code in browser"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
# Router configuration
- "traefik.http.routers.code-server.rule=Host(`code.${DOMAIN}`)"
- "traefik.http.routers.code-server.entrypoints=websecure"
- "traefik.http.routers.code-server.tls.certresolver=letsencrypt"
- "traefik.http.routers.code-server.middlewares=authelia@docker"
- 'traefik.http.routers.code-server.rule=Host(`code.${DOMAIN}`)"
- 'traefik.http.routers.code-server.entrypoints=websecure"
- 'traefik.http.routers.code-server.tls.certresolver=letsencrypt"
- '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 configuration
- "sablier.enable=true"
- "sablier.group=jasper-code-server"

View File

@@ -33,19 +33,19 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=media"
- "homelab.description=TV show management and automation"
- 'homelab.category=media"
- 'homelab.description=TV show management and automation"
- "com.centurylinklabs.watchtower.enable=true"
# 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.docker.network=traefik-network"
- "traefik.http.routers.sonarr.rule=Host(`sonarr.${DOMAIN}`)"
- "traefik.http.routers.sonarr.entrypoints=websecure"
- "traefik.http.routers.sonarr.tls.certresolver=letsencrypt"
- "traefik.http.routers.sonarr.middlewares=authelia@docker"
- "traefik.http.services.sonarr.loadbalancer.server.port=8989"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.sonarr.rule=Host(`sonarr.${DOMAIN}`)"
- 'traefik.http.routers.sonarr.entrypoints=websecure"
- 'traefik.http.routers.sonarr.tls.certresolver=letsencrypt"
- 'traefik.http.routers.sonarr.middlewares=authelia@docker"
- 'traefik.http.services.sonarr.loadbalancer.server.port=8989"
- "sablier.enable=true"
- "sablier.group=jasper-arr"
- "sablier.start-on-demand=true"
@@ -78,19 +78,19 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=media"
- "homelab.description=Movie management and automation"
- 'homelab.category=media"
- 'homelab.description=Movie management and automation"
- "com.centurylinklabs.watchtower.enable=true"
# 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.docker.network=traefik-network"
- "traefik.http.routers.radarr.rule=Host(`radarr.${DOMAIN}`)"
- "traefik.http.routers.radarr.entrypoints=websecure"
- "traefik.http.routers.radarr.tls.certresolver=letsencrypt"
- "traefik.http.routers.radarr.middlewares=authelia@docker"
- "traefik.http.services.radarr.loadbalancer.server.port=7878"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.radarr.rule=Host(`radarr.${DOMAIN}`)"
- 'traefik.http.routers.radarr.entrypoints=websecure"
- 'traefik.http.routers.radarr.tls.certresolver=letsencrypt"
- 'traefik.http.routers.radarr.middlewares=authelia@docker"
- 'traefik.http.services.radarr.loadbalancer.server.port=7878"
- "sablier.enable=true"
- "sablier.group=jasper-arr"
- "sablier.start-on-demand=true"
@@ -122,19 +122,19 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=media"
- "homelab.description=Indexer manager for Sonarr/Radarr"
- 'homelab.category=media"
- 'homelab.description=Indexer manager for Sonarr/Radarr"
- "com.centurylinklabs.watchtower.enable=true"
# 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.docker.network=traefik-network"
- "traefik.http.routers.prowlarr.rule=Host(`prowlarr.${DOMAIN}`)"
- "traefik.http.routers.prowlarr.entrypoints=websecure"
- "traefik.http.routers.prowlarr.tls.certresolver=letsencrypt"
- "traefik.http.routers.prowlarr.middlewares=authelia@docker"
- "traefik.http.services.prowlarr.loadbalancer.server.port=9696"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.prowlarr.rule=Host(`prowlarr.${DOMAIN}`)"
- 'traefik.http.routers.prowlarr.entrypoints=websecure"
- 'traefik.http.routers.prowlarr.tls.certresolver=letsencrypt"
- 'traefik.http.routers.prowlarr.middlewares=authelia@docker"
- 'traefik.http.services.prowlarr.loadbalancer.server.port=9696"
- "sablier.enable=true"
- "sablier.group=jasper-arr"
- "sablier.start-on-demand=true"
@@ -161,19 +161,19 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=media"
- "homelab.description=Ebook and audiobook management"
- 'homelab.category=media"
- 'homelab.description=Ebook and audiobook management"
- "com.centurylinklabs.watchtower.enable=true"
# 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.docker.network=traefik-network"
- "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"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- '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"
- "sablier.enable=true"
- "sablier.group=jasper-arr"
- "sablier.start-on-demand=true"
@@ -200,19 +200,19 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=media"
- "homelab.description=Music collection manager"
- 'homelab.category=media"
- 'homelab.description=Music collection manager"
- "com.centurylinklabs.watchtower.enable=true"
# 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.docker.network=traefik-network"
- "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"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- '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"
- "sablier.enable=true"
- "sablier.group=jasper-arr"
- "sablier.start-on-demand=true"
@@ -240,19 +240,19 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=media"
- "homelab.description=Book download automation"
- 'homelab.category=media"
- 'homelab.description=Book download automation"
- "com.centurylinklabs.watchtower.enable=true"
# 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.docker.network=traefik-network"
- "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"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- '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"
- "sablier.enable=true"
- "sablier.group=jasper-arr"
- "sablier.start-on-demand=true"
@@ -279,19 +279,19 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=media"
- "homelab.description=Comic book collection manager"
- 'homelab.category=media"
- 'homelab.description=Comic book collection manager"
- "com.centurylinklabs.watchtower.enable=true"
# 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.docker.network=traefik-network"
- "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"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- '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"
- "sablier.enable=true"
- "sablier.group=jasper-arr"
- "sablier.start-on-demand=true"
@@ -321,19 +321,19 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=media"
- "homelab.description=Media request management"
- 'homelab.category=media"
- 'homelab.description=Media request management"
- "com.centurylinklabs.watchtower.enable=true"
# 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.docker.network=traefik-network"
- "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"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- '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"
- "sablier.enable=true"
- "sablier.group=jasper-arr"
- "sablier.start-on-demand=true"

View File

@@ -50,17 +50,17 @@ services:
labels:
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=media"
- "homelab.description=Open-source media streaming server"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- 'homelab.category=media"
- 'homelab.description=Open-source media streaming server"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
# Router configuration
- "traefik.http.routers.jellyfin.rule=Host(`jellyfin.${DOMAIN}`)"
- "traefik.http.routers.jellyfin.entrypoints=websecure"
- "traefik.http.routers.jellyfin.tls=true"
- "traefik.http.routers.jellyfin.tls.certresolver=letsencrypt"
- 'traefik.http.routers.jellyfin.rule=Host(`jellyfin.${DOMAIN}`)"
- 'traefik.http.routers.jellyfin.entrypoints=websecure"
- 'traefik.http.routers.jellyfin.tls=true"
- 'traefik.http.routers.jellyfin.tls.certresolver=letsencrypt"
# Service configuration
- "traefik.http.services.jellyfin.loadbalancer.server.port=8096"
- 'traefik.http.services.jellyfin.loadbalancer.server.port=8096"
# Sablier configuration
- "sablier.enable=true"
- "sablier.group=jasper-jellyfin"
@@ -98,17 +98,17 @@ services:
labels:
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=media"
- "homelab.description=Ebook reader and library management"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- 'homelab.category=media"
- 'homelab.description=Ebook reader and library management"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
# Router configuration
- "traefik.http.routers.calibre.rule=Host(`calibre.${DOMAIN}`)"
- "traefik.http.routers.calibre.entrypoints=websecure"
- "traefik.http.routers.calibre.tls.certresolver=letsencrypt"
- "traefik.http.routers.calibre.middlewares=authelia@docker"
- 'traefik.http.routers.calibre.rule=Host(`calibre.${DOMAIN}`)"
- 'traefik.http.routers.calibre.entrypoints=websecure"
- 'traefik.http.routers.calibre.tls.certresolver=letsencrypt"
- 'traefik.http.routers.calibre.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.calibre.loadbalancer.server.port=8083"
- 'traefik.http.services.calibre.loadbalancer.server.port=8083"
# Sablier configuration (disabled by default)
- "sablier.enable=true"
- "sablier.group=jasper-calibre-web"

View File

@@ -38,19 +38,19 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=monitoring"
- "homelab.description=Metrics collection and time-series database"
- 'homelab.category=monitoring"
- 'homelab.description=Metrics collection and time-series database"
# 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.docker.network=traefik-network"
- "traefik.http.routers.prometheus.rule=Host(`prometheus.${DOMAIN}`)"
- "traefik.http.routers.prometheus.entrypoints=websecure"
- "traefik.http.routers.prometheus.tls=true"
- "traefik.http.routers.prometheus.tls.certresolver=letsencrypt"
- "traefik.http.routers.prometheus.middlewares=authelia@docker"
- "traefik.http.services.prometheus.loadbalancer.server.port=9090"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.prometheus.rule=Host(`prometheus.${DOMAIN}`)"
- 'traefik.http.routers.prometheus.entrypoints=websecure"
- 'traefik.http.routers.prometheus.tls=true"
- 'traefik.http.routers.prometheus.tls.certresolver=letsencrypt"
- 'traefik.http.routers.prometheus.middlewares=authelia@docker"
- 'traefik.http.services.prometheus.loadbalancer.server.port=9090"
# Grafana - Metrics visualization
# Default credentials: admin / admin (change on first login)
@@ -87,19 +87,19 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=monitoring"
- "homelab.description=Metrics visualization and dashboards"
- 'homelab.category=monitoring"
- 'homelab.description=Metrics visualization and dashboards"
# 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.docker.network=traefik-network"
- "traefik.http.routers.grafana.rule=Host(`grafana.${DOMAIN}`)"
- "traefik.http.routers.grafana.entrypoints=websecure"
- "traefik.http.routers.grafana.tls=true"
- "traefik.http.routers.grafana.tls.certresolver=letsencrypt"
- "traefik.http.routers.grafana.middlewares=authelia@docker"
- "traefik.http.services.grafana.loadbalancer.server.port=3000"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.grafana.rule=Host(`grafana.${DOMAIN}`)"
- 'traefik.http.routers.grafana.entrypoints=websecure"
- 'traefik.http.routers.grafana.tls=true"
- 'traefik.http.routers.grafana.tls.certresolver=letsencrypt"
- 'traefik.http.routers.grafana.middlewares=authelia@docker"
- 'traefik.http.services.grafana.loadbalancer.server.port=3000"
# Node Exporter - Host metrics exporter
# Metrics at: http://192.168.4.4:9100/metrics
@@ -121,8 +121,8 @@ services:
- '--path.sysfs=/host/sys'
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
labels:
- "homelab.category=monitoring"
- "homelab.description=Hardware and OS metrics exporter"
- 'homelab.category=monitoring"
- 'homelab.description=Hardware and OS metrics exporter"
# cAdvisor - Container metrics exporter
# Access at: http://192.168.4.4:8082
@@ -148,19 +148,19 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=monitoring"
- "homelab.description=Container metrics and performance monitoring"
- 'homelab.category=monitoring"
- 'homelab.description=Container metrics and performance 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.docker.network=traefik-network"
- "traefik.http.routers.cadvisor.rule=Host(`cadvisor.${DOMAIN}`)"
- "traefik.http.routers.cadvisor.entrypoints=websecure"
- "traefik.http.routers.cadvisor.tls=true"
- "traefik.http.routers.cadvisor.tls.certresolver=letsencrypt"
- "traefik.http.routers.cadvisor.middlewares=authelia@docker"
- "traefik.http.services.cadvisor.loadbalancer.server.port=8080"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.cadvisor.rule=Host(`cadvisor.${DOMAIN}`)"
- 'traefik.http.routers.cadvisor.entrypoints=websecure"
- 'traefik.http.routers.cadvisor.tls=true"
- 'traefik.http.routers.cadvisor.tls.certresolver=letsencrypt"
- 'traefik.http.routers.cadvisor.middlewares=authelia@docker"
- 'traefik.http.services.cadvisor.loadbalancer.server.port=8080"
# Uptime Kuma - Uptime monitoring
uptime-kuma:
@@ -188,19 +188,19 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=monitoring"
- "homelab.description=Service uptime monitoring and alerts"
- 'homelab.category=monitoring"
- 'homelab.description=Service uptime monitoring and alerts"
# 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.docker.network=traefik-network"
- "traefik.http.routers.uptime-kuma.rule=Host(`uptime-kuma.${DOMAIN}`)"
- "traefik.http.routers.uptime-kuma.entrypoints=websecure"
- "traefik.http.routers.uptime-kuma.tls=true"
- "traefik.http.routers.uptime-kuma.tls.certresolver=letsencrypt"
- "traefik.http.routers.uptime-kuma.middlewares=authelia@docker"
- "traefik.http.services.uptime-kuma.loadbalancer.server.port=3001"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.uptime-kuma.rule=Host(`uptime-kuma.${DOMAIN}`)"
- 'traefik.http.routers.uptime-kuma.entrypoints=websecure"
- 'traefik.http.routers.uptime-kuma.tls=true"
- 'traefik.http.routers.uptime-kuma.tls.certresolver=letsencrypt"
- 'traefik.http.routers.uptime-kuma.middlewares=authelia@docker"
- 'traefik.http.services.uptime-kuma.loadbalancer.server.port=3001"
# Loki - Log aggregation
# Access at: http://192.168.4.4:3100
@@ -230,19 +230,19 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=monitoring"
- "homelab.description=Log aggregation system"
- 'homelab.category=monitoring"
- 'homelab.description=Log aggregation system"
# 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.docker.network=traefik-network"
- "traefik.http.routers.loki.rule=Host(`loki.${DOMAIN}`)"
- "traefik.http.routers.loki.entrypoints=websecure"
- "traefik.http.routers.loki.tls=true"
- "traefik.http.routers.loki.tls.certresolver=letsencrypt"
- "traefik.http.routers.loki.middlewares=authelia@docker"
- "traefik.http.services.loki.loadbalancer.server.port=3100"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.loki.rule=Host(`loki.${DOMAIN}`)"
- 'traefik.http.routers.loki.entrypoints=websecure"
- 'traefik.http.routers.loki.tls=true"
- 'traefik.http.routers.loki.tls.certresolver=letsencrypt"
- 'traefik.http.routers.loki.middlewares=authelia@docker"
- 'traefik.http.services.loki.loadbalancer.server.port=3100"
# Promtail - Log shipper for Loki
# Ships Docker container logs to Loki
@@ -260,8 +260,8 @@ services:
depends_on:
- loki
labels:
- "homelab.category=monitoring"
- "homelab.description=Log collector for Loki"
- 'homelab.category=monitoring"
- 'homelab.description=Log collector for Loki"
volumes:
prometheus-data:

View File

@@ -52,17 +52,17 @@ services:
# TRAEFIK CONFIGURATION
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=productivity"
- "homelab.description=File sync and collaboration"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- 'homelab.category=productivity"
- 'homelab.description=File sync and collaboration"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
# Router configuration
- "traefik.http.routers.nextcloud.rule=Host(`nextcloud.${DOMAIN}`)"
- "traefik.http.routers.nextcloud.entrypoints=websecure"
- "traefik.http.routers.nextcloud.tls.certresolver=letsencrypt"
- "traefik.http.routers.nextcloud.middlewares=authelia@docker"
- 'traefik.http.routers.nextcloud.rule=Host(`nextcloud.${DOMAIN}`)"
- 'traefik.http.routers.nextcloud.entrypoints=websecure"
- 'traefik.http.routers.nextcloud.tls.certresolver=letsencrypt"
- 'traefik.http.routers.nextcloud.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.nextcloud.loadbalancer.server.port=8089"
- 'traefik.http.services.nextcloud.loadbalancer.server.port=8089"
# Sablier configuration
- "sablier.enable=true"
- "sablier.group=jasper-nextcloud"
@@ -83,8 +83,8 @@ services:
- MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
labels:
- "homelab.category=productivity"
- "homelab.description=Nextcloud database"
- 'homelab.category=productivity"
- 'homelab.description=Nextcloud database"
# Mealie - Recipe manager
mealie:
@@ -108,17 +108,17 @@ services:
# TRAEFIK CONFIGURATION
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=productivity"
- "homelab.description=Recipe manager and meal planner"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- 'homelab.category=productivity"
- 'homelab.description=Recipe manager and meal planner"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
# Router configuration
- "traefik.http.routers.mealie.rule=Host(`mealie.${DOMAIN}`)"
- "traefik.http.routers.mealie.entrypoints=websecure"
- "traefik.http.routers.mealie.tls.certresolver=letsencrypt"
- "traefik.http.routers.mealie.middlewares=authelia@docker"
- 'traefik.http.routers.mealie.rule=Host(`mealie.${DOMAIN}`)"
- 'traefik.http.routers.mealie.entrypoints=websecure"
- 'traefik.http.routers.mealie.tls.certresolver=letsencrypt"
- 'traefik.http.routers.mealie.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.mealie.loadbalancer.server.port=9000"
- 'traefik.http.services.mealie.loadbalancer.server.port=9000"
# Sablier configuration
- "sablier.enable=true"
- "sablier.group=jasper-mealie"
@@ -153,17 +153,17 @@ services:
# TRAEFIK CONFIGURATION
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=productivity"
- "homelab.description=Blog and website platform"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- 'homelab.category=productivity"
- 'homelab.description=Blog and website platform"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
# Router configuration
- "traefik.http.routers.wordpress.rule=Host(`wordpress.${DOMAIN}`)"
- "traefik.http.routers.wordpress.entrypoints=websecure"
- "traefik.http.routers.wordpress.tls.certresolver=letsencrypt"
- "traefik.http.routers.wordpress.middlewares=authelia@docker"
- 'traefik.http.routers.wordpress.rule=Host(`wordpress.${DOMAIN}`)"
- 'traefik.http.routers.wordpress.entrypoints=websecure"
- 'traefik.http.routers.wordpress.tls.certresolver=letsencrypt"
- 'traefik.http.routers.wordpress.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.wordpress.loadbalancer.server.port=8088"
- 'traefik.http.services.wordpress.loadbalancer.server.port=8088"
# Sablier configuration
- "sablier.enable=true"
- "sablier.group=jasper-wordpress"
@@ -183,8 +183,8 @@ services:
- MYSQL_USER=wordpress
- MYSQL_PASSWORD=${WORDPRESS_DB_PASSWORD}
labels:
- "homelab.category=productivity"
- "homelab.description=WordPress database"
- 'homelab.category=productivity"
- 'homelab.description=WordPress database"
# Gitea - Self-hosted Git service
gitea:
@@ -229,17 +229,17 @@ services:
# TRAEFIK CONFIGURATION
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=productivity"
- "homelab.description=Self-hosted Git service"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- 'homelab.category=productivity"
- 'homelab.description=Self-hosted Git service"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
# Router configuration
- "traefik.http.routers.gitea.rule=Host(`gitea.${DOMAIN}`)"
- "traefik.http.routers.gitea.entrypoints=websecure"
- "traefik.http.routers.gitea.tls.certresolver=letsencrypt"
- "traefik.http.routers.gitea.middlewares=authelia@docker"
- 'traefik.http.routers.gitea.rule=Host(`gitea.${DOMAIN}`)"
- 'traefik.http.routers.gitea.entrypoints=websecure"
- 'traefik.http.routers.gitea.tls.certresolver=letsencrypt"
- 'traefik.http.routers.gitea.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.gitea.loadbalancer.server.port=3010"
- 'traefik.http.services.gitea.loadbalancer.server.port=3010"
# Sablier configuration
- "sablier.enable=true"
- "sablier.group=jasper-gitea"
@@ -258,8 +258,8 @@ services:
- POSTGRES_PASSWORD=${GITEA_DB_PASSWORD}
- POSTGRES_DB=gitea
labels:
- "homelab.category=productivity"
- "homelab.description=Gitea database"
- 'homelab.category=productivity"
- 'homelab.description=Gitea database"
# Jupyter Lab - Interactive computing notebooks
@@ -292,18 +292,18 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=productivity"
- "homelab.description=Jupyter Lab for data science and ML"
- 'homelab.category=productivity"
- 'homelab.description=Jupyter Lab for data science and ML"
# 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.docker.network=traefik-network"
- "traefik.http.routers.jupyter.rule=Host(`jupyter.${DOMAIN}`)"
- "traefik.http.routers.jupyter.entrypoints=websecure"
- "traefik.http.routers.jupyter.tls.certresolver=letsencrypt"
- "traefik.http.routers.jupyter.middlewares=authelia@docker"
- "traefik.http.services.jupyter.loadbalancer.server.port=8890"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- 'traefik.http.routers.jupyter.rule=Host(`jupyter.${DOMAIN}`)"
- 'traefik.http.routers.jupyter.entrypoints=websecure"
- 'traefik.http.routers.jupyter.tls.certresolver=letsencrypt"
- 'traefik.http.routers.jupyter.middlewares=authelia@docker"
- 'traefik.http.services.jupyter.loadbalancer.server.port=8890"
# Sablier configuration
- "sablier.enable=true"
- "sablier.group=jasper-jupyter"

View File

@@ -33,19 +33,19 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=media"
- "homelab.description=Distributed transcoding server"
- 'homelab.category=media"
- 'homelab.description=Distributed transcoding server"
- "com.centurylinklabs.watchtower.enable=true"
# 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.docker.network=traefik-network"
- "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"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- '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"
- "sablier.enable=true"
- "sablier.group=jasper-tdarr"
- "sablier.start-on-demand=true"
@@ -101,19 +101,19 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=media"
- "homelab.description=Library optimization and transcoding"
- 'homelab.category=media"
- 'homelab.description=Library optimization and transcoding"
- "com.centurylinklabs.watchtower.enable=true"
# 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.docker.network=traefik-network"
- "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=8889"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
- '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=8889"
- "sablier.enable=true"
- "sablier.group=jasper-unmanic"
- "sablier.start-on-demand=true"

View File

@@ -36,17 +36,17 @@ services:
# TRAEFIK CONFIGURATION
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=utilities"
- "homelab.description=Backup management with restic"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- 'homelab.category=utilities"
- 'homelab.description=Backup management with restic"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
# Router configuration
- "traefik.http.routers.backrest.rule=Host(`backrest.${DOMAIN}`)"
- "traefik.http.routers.backrest.entrypoints=websecure"
- "traefik.http.routers.backrest.tls.certresolver=letsencrypt"
- "traefik.http.routers.backrest.middlewares=authelia@docker"
- 'traefik.http.routers.backrest.rule=Host(`backrest.${DOMAIN}`)"
- 'traefik.http.routers.backrest.entrypoints=websecure"
- 'traefik.http.routers.backrest.tls.certresolver=letsencrypt"
- 'traefik.http.routers.backrest.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.backrest.loadbalancer.server.port=9898"
- 'traefik.http.services.backrest.loadbalancer.server.port=9898"
# Sablier configuration
- "sablier.enable=true"
- "sablier.group=jasper-backrest"
@@ -81,17 +81,17 @@ services:
# TRAEFIK CONFIGURATION
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=utilities"
- "homelab.description=Backup software with encryption"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- 'homelab.category=utilities"
- 'homelab.description=Backup software with encryption"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
# Router configuration
- "traefik.http.routers.duplicati.rule=Host(`duplicati.${DOMAIN}`)"
- "traefik.http.routers.duplicati.entrypoints=websecure"
- "traefik.http.routers.duplicati.tls.certresolver=letsencrypt"
- "traefik.http.routers.duplicati.middlewares=authelia@docker"
- 'traefik.http.routers.duplicati.rule=Host(`duplicati.${DOMAIN}`)"
- 'traefik.http.routers.duplicati.entrypoints=websecure"
- 'traefik.http.routers.duplicati.tls.certresolver=letsencrypt"
- '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"
# Sablier configuration
- "sablier.enable=true"
- "sablier.group=jasper-duplicati"
@@ -125,17 +125,17 @@ services:
# ==========================================
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=utilities"
- "homelab.description=Form builder platform"
- 'homelab.category=utilities"
- 'homelab.description=Form builder platform"
# Traefik labels
- "traefik.enable=true"
- 'traefik.enable=true"
# Router configuration
- "traefik.http.routers.formio.rule=Host(`forms.${DOMAIN}`)"
- "traefik.http.routers.formio.entrypoints=websecure"
- "traefik.http.routers.formio.tls.certresolver=letsencrypt"
- "traefik.http.routers.formio.middlewares=authelia@docker"
- 'traefik.http.routers.formio.rule=Host(`forms.${DOMAIN}`)"
- 'traefik.http.routers.formio.entrypoints=websecure"
- 'traefik.http.routers.formio.tls.certresolver=letsencrypt"
- 'traefik.http.routers.formio.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.formio.loadbalancer.server.port=3001"
- 'traefik.http.services.formio.loadbalancer.server.port=3001"
# Sablier configuration
- "sablier.enable=true"
- "sablier.group=jasper-formio"
@@ -148,8 +148,8 @@ services:
networks:
- homelab-network
labels:
- "homelab.category=utilities"
- "homelab.description=Form.io database"
- 'homelab.category=utilities"
- 'homelab.description=Form.io database"
# Bitwarden (Vaultwarden) - Password manager
# Note: SSO disabled for browser extension and mobile app compatibility
@@ -187,19 +187,19 @@ services:
# TRAEFIK CONFIGURATION
# ==========================================
# Service metadata
- "homelab.category=utilities"
- "homelab.description=Self-hosted password manager (Bitwarden)"
- 'homelab.category=utilities"
- 'homelab.description=Self-hosted password manager (Bitwarden)"
# 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.http.routers.vaultwarden.rule=Host(`vault.${DOMAIN}`)"
- "traefik.http.routers.vaultwarden.entrypoints=websecure"
- "traefik.http.routers.vaultwarden.tls=true"
- "traefik.http.routers.vaultwarden.tls.certresolver=letsencrypt"
- 'traefik.enable=true"
- 'traefik.http.routers.vaultwarden.rule=Host(`vault.${DOMAIN}`)"
- 'traefik.http.routers.vaultwarden.entrypoints=websecure"
- 'traefik.http.routers.vaultwarden.tls=true"
- 'traefik.http.routers.vaultwarden.tls.certresolver=letsencrypt"
# SSO disabled for browser extension and mobile app compatibility
# - "traefik.http.routers.vaultwarden.middlewares=authelia@docker"
- "traefik.http.services.vaultwarden.loadbalancer.server.port=80"
# - 'traefik.http.routers.vaultwarden.middlewares=authelia@docker"
- 'traefik.http.services.vaultwarden.loadbalancer.server.port=80"
# Sablier configuration
- "sablier.enable=true"
- "sablier.group=jasper-vaultwarden"

View File

@@ -38,17 +38,17 @@ services:
labels:
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=downloaders"
- "homelab.description=VPN client for secure downloads"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- 'homelab.category=downloaders"
- 'homelab.description=VPN client for secure downloads"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
# Router configuration
- "traefik.http.routers.qbittorrent.rule=Host(`qbit.${DOMAIN}`)"
- "traefik.http.routers.qbittorrent.entrypoints=websecure"
- "traefik.http.routers.qbittorrent.tls=true"
- "traefik.http.routers.qbittorrent.middlewares=authelia@docker"
- 'traefik.http.routers.qbittorrent.rule=Host(`qbit.${DOMAIN}`)"
- 'traefik.http.routers.qbittorrent.entrypoints=websecure"
- 'traefik.http.routers.qbittorrent.tls=true"
- 'traefik.http.routers.qbittorrent.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.qbittorrent.loadbalancer.server.port=8081"
- 'traefik.http.services.qbittorrent.loadbalancer.server.port=8081"
# Sablier configuration
- "sablier.enable=true"
- "sablier.group=jasper-qbittorrent"

View File

@@ -26,17 +26,17 @@ services:
# TRAEFIK CONFIGURATION
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=productivity"
- "homelab.description=File-based wiki"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- 'homelab.category=productivity"
- 'homelab.description=File-based wiki"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
# Router configuration
- "traefik.http.routers.dokuwiki.rule=Host(`dokuwiki.${DOMAIN}`)"
- "traefik.http.routers.dokuwiki.entrypoints=websecure"
- "traefik.http.routers.dokuwiki.tls.certresolver=letsencrypt"
- "traefik.http.routers.dokuwiki.middlewares=authelia@docker"
- 'traefik.http.routers.dokuwiki.rule=Host(`dokuwiki.${DOMAIN}`)"
- 'traefik.http.routers.dokuwiki.entrypoints=websecure"
- 'traefik.http.routers.dokuwiki.tls.certresolver=letsencrypt"
- 'traefik.http.routers.dokuwiki.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.dokuwiki.loadbalancer.server.port=8087"
- 'traefik.http.services.dokuwiki.loadbalancer.server.port=8087"
# Sablier configuration
- "sablier.enable=true"
- "sablier.group=jasper-dokuwiki"
@@ -77,17 +77,17 @@ services:
# TRAEFIK CONFIGURATION
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=productivity"
- "homelab.description=Documentation and wiki platform"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- 'homelab.category=productivity"
- 'homelab.description=Documentation and wiki platform"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
# Router configuration
- "traefik.http.routers.bookstack.rule=Host(`bookstack.${DOMAIN}`)"
- "traefik.http.routers.bookstack.entrypoints=websecure"
- "traefik.http.routers.bookstack.tls.certresolver=letsencrypt"
- "traefik.http.routers.bookstack.middlewares=authelia@docker"
- 'traefik.http.routers.bookstack.rule=Host(`bookstack.${DOMAIN}`)"
- 'traefik.http.routers.bookstack.entrypoints=websecure"
- 'traefik.http.routers.bookstack.tls.certresolver=letsencrypt"
- 'traefik.http.routers.bookstack.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.bookstack.loadbalancer.server.port=6875"
- 'traefik.http.services.bookstack.loadbalancer.server.port=6875"
# Sablier configuration
- "sablier.enable=true"
- "sablier.group=jasper-bookstack"
@@ -107,8 +107,8 @@ services:
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=${BOOKSTACK_DB_PASSWORD}
labels:
- "homelab.category=productivity"
- "homelab.description=BookStack database"
- 'homelab.category=productivity"
- 'homelab.description=BookStack database"
# MediaWiki - Wiki platform
mediawiki:
@@ -140,17 +140,17 @@ services:
# TRAEFIK CONFIGURATION
# Service metadata
- "com.centurylinklabs.watchtower.enable=true"
- "homelab.category=productivity"
- "homelab.description=MediaWiki platform"
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- 'homelab.category=productivity"
- 'homelab.description=MediaWiki platform"
- 'traefik.enable=true"
- 'traefik.docker.network=traefik-network"
# Router configuration
- "traefik.http.routers.mediawiki.rule=Host(`mediawiki.${DOMAIN}`)"
- "traefik.http.routers.mediawiki.entrypoints=websecure"
- "traefik.http.routers.mediawiki.tls.certresolver=letsencrypt"
- "traefik.http.routers.mediawiki.middlewares=authelia@docker"
- 'traefik.http.routers.mediawiki.rule=Host(`mediawiki.${DOMAIN}`)"
- 'traefik.http.routers.mediawiki.entrypoints=websecure"
- 'traefik.http.routers.mediawiki.tls.certresolver=letsencrypt"
- 'traefik.http.routers.mediawiki.middlewares=authelia@docker"
# Service configuration
- "traefik.http.services.mediawiki.loadbalancer.server.port=8086"
- 'traefik.http.services.mediawiki.loadbalancer.server.port=8086"
# Sablier configuration
- "sablier.enable=true"
- "sablier.group=jasper-mediawiki"
@@ -170,8 +170,8 @@ services:
- MYSQL_USER=mediawiki
- MYSQL_PASSWORD=${MEDIAWIKI_DB_PASSWORD}
labels:
- "homelab.category=productivity"
- "homelab.description=MediaWiki database"
- 'homelab.category=productivity"
- 'homelab.description=MediaWiki database"
volumes:
bookstack-db-data: