This commit adds several new features to enhance homelab management: ## New Services ### Backrest (backup.fig.systems) - Modern web UI for managing Restic backups - Encrypted, deduplicated backups to Backblaze B2 - Automated scheduling and retention policies - Pre-configured to backup Immich photos and homelab configs - SSO protected via tinyauth ### Homarr (home.fig.systems) - Auto-discovery dashboard for all homelab services - Docker socket integration for service monitoring - Clean, modern interface with customizable widgets - SSO protected via tinyauth ## Infrastructure ### Service Template System (templates/service-template/) - Complete template with all common patterns - Traefik labels, health checks, dependencies - Environment variable examples - Comprehensive README with usage instructions - Ensures consistency across all new services ### OpenTofu/Terraform IaC (terraform/) - Complete Proxmox VM provisioning setup - Cloud-init automation for Docker host creation - Automated Docker installation and configuration - Media directory structure creation - Step-by-step documentation including: - Cloud template creation guide - Variable configuration examples - Resource sizing recommendations - Security hardening options ## Documentation Updates - Updated README with new service URLs - Added Homarr and Backrest to directory structure - Updated deployment instructions - Added service table entries for new services All new services follow established patterns: - External homelab network - Let's Encrypt SSL via Traefik - Dual domain support (fig.systems + edfig.dev) - Consistent naming and structure
49 lines
1.3 KiB
YAML
49 lines
1.3 KiB
YAML
services:
|
|
backrest:
|
|
image: garethgeorge/backrest:latest
|
|
container_name: backrest
|
|
hostname: backrest
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
- homelab
|
|
|
|
volumes:
|
|
- ./data:/data
|
|
- ./config:/config
|
|
- ./cache:/cache
|
|
- /home/user/homelab/compose/media/frontend/immich/upload:/backups/immich:ro
|
|
- /home/user/homelab/compose:/backups/homelab-config:ro
|
|
|
|
environment:
|
|
- BACKREST_DATA=/data
|
|
- BACKREST_CONFIG=/config/config.json
|
|
- XDG_CACHE_HOME=/cache
|
|
- TZ=${TZ:-America/Los_Angeles}
|
|
|
|
labels:
|
|
# Traefik
|
|
traefik.enable: true
|
|
traefik.http.routers.backrest.rule: Host(`backup.fig.systems`) || Host(`backup.edfig.dev`)
|
|
traefik.http.routers.backrest.entrypoints: websecure
|
|
traefik.http.routers.backrest.tls.certresolver: letsencrypt
|
|
traefik.http.services.backrest.loadbalancer.server.port: 9898
|
|
|
|
# Require authentication
|
|
traefik.http.routers.backrest.middlewares: tinyauth
|
|
|
|
# Homarr Discovery
|
|
homarr.name: Backrest Backup
|
|
homarr.group: Services
|
|
homarr.icon: mdi:backup-restore
|
|
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:9898/"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
networks:
|
|
homelab:
|
|
external: true
|