126 lines
4.0 KiB
Markdown
126 lines
4.0 KiB
Markdown
# 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
|
|
1. **Prowlarr** (Atlantis) - Indexer management
|
|
2. **Sonarr/Radarr/Lidarr** (Atlantis) - Content management
|
|
- Dependencies: Prowlarr, download clients
|
|
3. **SABnzbd/qBittorrent** (Atlantis) - Download clients
|
|
- Dependencies: VPN (optional), storage volumes
|
|
4. **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:
|
|
|
|
1. **Core Infrastructure**
|
|
- Storage systems (Synology, TrueNAS)
|
|
- Network services (Pi-hole, router)
|
|
- VPN services (Wireguard, Tailscale)
|
|
|
|
2. **Authentication & Proxy**
|
|
- Authentik
|
|
- Nginx Proxy Manager
|
|
|
|
3. **Monitoring Foundation**
|
|
- Prometheus
|
|
- Node exporters
|
|
- Grafana
|
|
|
|
4. **Application Services**
|
|
- Media stack (Plex, arr suite)
|
|
- Development tools (Gitea, Portainer)
|
|
- Communication (Matrix, Mastodon)
|
|
|
|
5. **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 config` to verify service dependencies
|
|
- Check `depends_on` clauses 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/`* |