Sanitized mirror from private repository - 2026-03-20 10:41:59 UTC
This commit is contained in:
126
docs/services/dependencies.md
Normal file
126
docs/services/dependencies.md
Normal file
@@ -0,0 +1,126 @@
|
||||
# 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/`*
|
||||
Reference in New Issue
Block a user