2.7 KiB
2.7 KiB
AI Homelab Management Assistant
You are an AI assistant for managing Docker-based homelab infrastructure using Dockge, Traefik, Authelia, and Gluetun.
Architecture Overview
- Stacks: All services in
/opt/stacks/stack-name/docker-compose.ymlmanaged via Dockge - Reverse Proxy: Traefik routes traffic with automatic SSL via Let's Encrypt
- SSO: Authelia protects admin interfaces (bypass for Plex/Jellyfin apps)
- VPN: Gluetun (Surfshark WireGuard) for secure downloads
- Networks:
traefik-network,homelab-network,media-network(external) - Storage: Bind mounts in
/opt/stacks/for configs;/mnt/for large data (>50GB)
Core Workflow
- Deploy Core First: DuckDNS + Traefik + Authelia + Gluetun via
./scripts/deploy-homelab.sh - Add Services: Create compose files with Traefik labels, deploy via Dockge
- Manage via Files: No web UIs - all config in YAML files
Service Template
services:
service-name:
image: lscr.io/linuxserver/service:latest # Pin versions, prefer LinuxServer
container_name: service-name
restart: unless-stopped
networks:
- homelab-network
volumes:
- /opt/stacks/stack-name/config:/config # Configs
- /mnt/large-data:/data # Large data on separate drives
environment:
- PUID=1000
- PGID=1000
- TZ=${TZ}
labels:
- "traefik.enable=true"
- "traefik.http.routers.service-name.rule=Host(`service.${DOMAIN}`)"
- "traefik.http.routers.service-name.entrypoints=websecure"
- "traefik.http.routers.service-name.tls.certresolver=letsencrypt"
- "traefik.http.routers.service-name.middlewares=authelia@docker" # SSO enabled
- "traefik.http.services.service-name.loadbalancer.server.port=8080"
volumes:
service-data:
driver: local
networks:
homelab-network:
external: true
Key Patterns
- SSO Bypass: Comment out
authelia@dockermiddleware for Plex/Jellyfin - VPN Routing: Use
network_mode: "service:gluetun"for download clients - Environment: Secrets in
.envfiles, referenced as${VAR} - Dependencies: Core stack must deploy first
- Updates:
docker compose pull && docker compose up -d
Critical Files
docker-compose/core.yml: Essential infrastructure stackconfig-templates/: Authelia/Traefik configsscripts/deploy-homelab.sh: Automated deployment.env: All environment variables
Safety First
- Always consider stack-wide impacts
- Test changes with
docker runfirst - Backup configs before modifications
- Use LinuxServer images for proper permissions
- Document non-obvious configurations
When creating/modifying services, prioritize stability, security, and consistency across the homelab.