- Enable Sablier by default for services with middleware definitions - Update label comments to indicate 'enabled by default - comment out to disable' - Ensure x-dockge sections have proxied URLs first, then direct IP:port - Remove any x-dockge labels from service configurations - Maintain well-documented, concise label sections for easy enable/disable
128 lines
4.0 KiB
YAML
128 lines
4.0 KiB
YAML
# Dashboard Services
|
|
# Homepage and Homarr for homelab dashboards
|
|
# Place in /opt/stacks/dashboards/docker-compose.yml
|
|
|
|
# SABLIER SESSION DURATION: Set to 5m for testing. Increase to 30m for production in config-templates/traefik/dynamic/sablier.yml
|
|
|
|
# RESTART POLICY GUIDE:
|
|
# - unless-stopped: Core infrastructure services that should always run
|
|
# - no: Services with Sablier lazy loading (start on-demand)
|
|
# - See individual service comments for specific reasoning
|
|
|
|
# Service Access URLs:
|
|
# - Homepage: https://home.${DOMAIN}
|
|
# - Homarr: https://homarr.${DOMAIN}
|
|
|
|
services:
|
|
# Homepage - Application dashboard (AI-configurable via YAML)
|
|
# Access at: https://home.${DOMAIN}
|
|
# Dashboard service should always run for quick access to service overview
|
|
homepage:
|
|
image: ghcr.io/gethomepage/homepage:latest
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '0.50'
|
|
memory: 256M
|
|
pids: 512
|
|
reservations:
|
|
cpus: '0.25'
|
|
memory: 128M
|
|
container_name: homepage
|
|
restart: unless-stopped
|
|
networks:
|
|
- homelab-network
|
|
- traefik-network
|
|
ports:
|
|
- "3000:3000"
|
|
volumes:
|
|
- ./homepage:/app/config
|
|
- /var/run/docker.sock:/var/run/docker.sock # For Docker integration do not mount RO
|
|
- /opt/stacks:/opt/stacks # To discover other stacks
|
|
environment:
|
|
- PUID=995 # Must be set to the docker user ID
|
|
- PGID=995 # Must be set to the docker group ID
|
|
- TZ=${TZ}
|
|
- HOMEPAGE_ALLOWED_HOSTS=home.${DOMAIN}
|
|
labels:
|
|
# ==========================================
|
|
# TRAEFIK CONFIGURATION
|
|
# ==========================================
|
|
|
|
# Service metadata
|
|
- "homelab.category=dashboard"
|
|
- "homelab.description=Application dashboard (AI-configurable)"
|
|
|
|
# Traefik reverse proxy (uncomment to enable)
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.homepage.rule=Host(`home.${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"
|
|
|
|
# Homarr - Modern dashboard
|
|
# Access at: https://homarr.${DOMAIN}
|
|
# Uses Sablier lazy loading - starts on-demand, stops after 5min inactivity
|
|
homarr:
|
|
image: ghcr.io/ajnart/homarr:latest
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '0.50'
|
|
memory: 256M
|
|
pids: 512
|
|
reservations:
|
|
cpus: '0.25'
|
|
memory: 128M
|
|
container_name: homarr
|
|
restart: no
|
|
networks:
|
|
- homelab-network
|
|
- traefik-network
|
|
ports:
|
|
- "7575:7575"
|
|
volumes:
|
|
- ./homarr/config:/app/config/configs
|
|
- ./homarr/data:/data
|
|
- ./homarr/icons:/app/public/icons
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
environment:
|
|
- TZ=${TZ}
|
|
labels:
|
|
# ==========================================
|
|
# TRAEFIK & SABLIER CONFIGURATION
|
|
# ==========================================
|
|
|
|
# Service metadata
|
|
- "homelab.category=dashboard"
|
|
- "homelab.description=Modern homelab dashboard"
|
|
|
|
# Traefik reverse proxy (uncomment to enable)
|
|
- "traefik.enable=true"
|
|
- "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.services.homarr.loadbalancer.server.port=7575"
|
|
|
|
# Sablier lazy loading (enabled by default - comment out to disable)
|
|
- "sablier.enable=true"
|
|
- "sablier.group=${SERVER_HOSTNAME:-debian}-homarr"
|
|
- "sablier.start-on-demand=true"
|
|
|
|
# ==========================================
|
|
# DOCKGE URL CONFIGURATION
|
|
# ==========================================
|
|
x-dockge:
|
|
urls:
|
|
# Proxied URLs (through Traefik)
|
|
- https://home.${DOMAIN}
|
|
- https://homarr.${DOMAIN}
|
|
|
|
networks:
|
|
homelab-network:
|
|
external: true
|
|
traefik-network:
|
|
external: true
|