4.0 KiB
4.0 KiB
Service Dependencies
This document outlines the dependencies between services in the homelab infrastructure.
Core Infrastructure Dependencies
Authentication & Authorization
- Authentik (Calypso) - Provides SSO for multiple services
- Dependent services: Grafana, Portainer, various web UIs
- Required for: OIDC authentication across the infrastructure
Reverse Proxy & SSL
- Nginx Proxy Manager (Calypso) - Handles SSL termination and routing
- Dependent services: All web-accessible services
- Provides: SSL certificates, domain routing, access control
Monitoring Stack
- Prometheus (Homelab VM) - Metrics collection
- Dependencies: Node exporters on all hosts
- Dependent services: Grafana, Alertmanager
- Grafana (Homelab VM) - Visualization
- Dependencies: Prometheus, InfluxDB
- Alertmanager (Homelab VM) - Alert routing
- Dependencies: Prometheus
- Dependent services: ntfy, Signal bridge
Storage & Backup
- Syncthing - File synchronization across hosts
- No dependencies
- Used by: Multiple hosts for config sync
- Vaultwarden (Atlantis) - Password management
- Dependencies: Database (SQLite/PostgreSQL)
- Critical for: Accessing other service credentials
Media Stack Dependencies
Download Chain
- Prowlarr (Atlantis) - Indexer management
- Sonarr/Radarr/Lidarr (Atlantis) - Content management
- Dependencies: Prowlarr, download clients
- SABnzbd/qBittorrent (Atlantis) - Download clients
- Dependencies: VPN (optional), storage volumes
- Plex/Jellyfin (Multiple hosts) - Media servers
- Dependencies: Media files from arr stack
Theme Integration
- Theme.Park (Atlantis) - UI theming
- Dependent services: All arr stack applications
- Configuration: Must use HTTP scheme for local deployment
Network Dependencies
VPN & Remote Access
- Wireguard (Multiple hosts) - VPN access
- Dependencies: Port forwarding, dynamic DNS
- Tailscale (Multiple hosts) - Mesh VPN
- No local dependencies
- Provides: Secure inter-host communication
DNS & Discovery
- Pi-hole (Multiple hosts) - DNS filtering
- Dependencies: Upstream DNS servers
- AdGuard Home (Concord NUC) - Alternative DNS filtering
Development Stack
Git & CI/CD
- Gitea (Guava) - Git hosting
- Dependencies: Database, storage
- Portainer (Multiple hosts) - Container management
- Dependencies: Docker daemon, Git repositories
Databases
- PostgreSQL (Various hosts) - Primary database
- Dependent services: Authentik, Gitea, various applications
- Redis (Various hosts) - Caching and sessions
- Dependent services: Authentik, various web applications
Service Startup Order
For disaster recovery, services should be started in this order:
-
Core Infrastructure
- Storage systems (Synology, TrueNAS)
- Network services (Pi-hole, router)
- VPN services (Wireguard, Tailscale)
-
Authentication & Proxy
- Authentik
- Nginx Proxy Manager
-
Monitoring Foundation
- Prometheus
- Node exporters
- Grafana
-
Application Services
- Media stack (Plex, arr suite)
- Development tools (Gitea, Portainer)
- Communication (Matrix, Mastodon)
-
Optional Services
- Gaming servers
- AI/ML services
- Experimental applications
Critical Dependencies
Services that, if down, affect multiple other services:
- Authentik: Breaks SSO for many services
- Nginx Proxy Manager: Breaks external access
- Prometheus: Breaks monitoring and alerting
- Vaultwarden: Prevents access to credentials
- Synology NAS: Hosts critical storage and services
Dependency Mapping Tools
- Use
docker-compose configto verify service dependencies - Check
depends_onclauses in compose files - Monitor service health through Grafana dashboards
- Use Portainer to visualize container dependencies
For specific service configuration details, see the individual service documentation in docs/services/individual/