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
57 lines
1.5 KiB
YAML
57 lines
1.5 KiB
YAML
# Homarr - Modern dashboard with Docker auto-discovery
|
|
# Docs: https://homarr.dev/docs/getting-started/installation
|
|
# GitHub: https://github.com/ajnart/homarr
|
|
|
|
services:
|
|
homarr:
|
|
container_name: homarr
|
|
image: ghcr.io/ajnart/homarr:latest
|
|
|
|
environment:
|
|
# Timezone
|
|
- TZ=America/Los_Angeles
|
|
|
|
# Base path (if behind reverse proxy with path)
|
|
# - BASE_URL=/dashboard
|
|
|
|
# Port (default: 7575)
|
|
- PORT=7575
|
|
|
|
# Authentication
|
|
# - AUTH_PROVIDER=oidc # For SSO integration
|
|
# - DEFAULT_COLOR_SCHEME=dark
|
|
|
|
volumes:
|
|
# Configuration and data
|
|
- ./config:/app/data/configs
|
|
- ./data:/data
|
|
- ./icons:/app/public/icons
|
|
|
|
# Docker socket for auto-discovery
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
- homelab
|
|
|
|
labels:
|
|
traefik.enable: true
|
|
|
|
# Web UI routing
|
|
traefik.http.routers.homarr.rule: Host(`home.fig.systems`) || Host(`home.edfig.dev`)
|
|
traefik.http.routers.homarr.entrypoints: websecure
|
|
traefik.http.routers.homarr.tls.certresolver: letsencrypt
|
|
traefik.http.services.homarr.loadbalancer.server.port: 7575
|
|
|
|
# SSO Protection (optional - dashboard may be public)
|
|
# traefik.http.routers.homarr.middlewares: tinyauth
|
|
|
|
# Homarr Labels for custom configuration
|
|
homarr.name: Homarr Dashboard
|
|
homarr.group: Infrastructure
|
|
homarr.icon: /icons/homarr.png
|
|
|
|
networks:
|
|
homelab:
|
|
external: true
|