Spoke is an open-source hub-and-spoke platform for running a modular home server with Docker Compose. The hub provides core infrastructure (reverse proxy, auth, security engine, database), and modules plug in as independent repos.
Architecture
Hub (core infrastructure)
├── Traefik — Reverse proxy with automatic TLS
├── Authentik — SSO and forward auth
├── CrowdSec — AppSec WAF and IP reputation
├── PostgreSQL — Shared database
├── Redis — Cache and session store
└── Socket Proxy — Restricted Docker API access
Modules (plug-and-play service groups)
├── Each module = independent Git repo
├── 3-layer env merge (base → module defaults → site overrides)
├── Automatic Traefik rule deployment
└── Makefile orchestrates everything
| Module | Description |
|---|---|
| spoke-monitoring | Grafana, Prometheus, Loki, Telegraf, Dozzle |
| spoke-plex | Plex media server with Tautulli monitoring |
| spoke-immich | Self-hosted photo and video management |
| spoke-music | Navidrome and Lidarr music streaming |
| spoke-books | Calibre-Web, Readarr, Audiobookshelf |
| spoke-database | MinIO, MongoDB, and time series databases |
| spoke-homepage | Homepage dashboard |
| spoke-torrenting | VPN-protected torrenting and direct download |
| spoke-foundryvtt | FoundryVTT virtual tabletop |
| spoke-protonmail | Proton Mail Bridge SMTP/IMAP service |





