Operator & Self-Hosting Guide¶
This section is dedicated to system administrators, homelab enthusiasts, and developers deploying Cantus in production environments.
Deployment Architecture¶
Cantus is packaged as a lightweight, single-container image supporting both linux/amd64 (Intel/AMD servers) and linux/arm64 (Raspberry Pi 4/5, Apple Silicon, AWS Graviton):
flowchart TD
subgraph Host Network / Reverse Proxy
Client[Web Browser / TV Display] -->|HTTPS :443 / WSS| Proxy[Reverse Proxy: Caddy / Nginx / Traefik]
end
subgraph Docker Container: Cantus
Proxy -->|HTTP :5000 / WS| App[ASP.NET Core 10 Minimal API + SignalR]
App --> WASM[Static Uno WebAssembly Client]
App --> Engine[Adaptive Spotify Polling Engine]
App --> Cache[(SQLite DB & Data Protection Keys)]
end
subgraph External APIs
Engine -->|OAuth PKCE / REST| Spotify[Spotify Web API]
App -->|REST Queries| LRCLIB[LRCLIB Synced Lyrics API]
end
Operator Guide Contents¶
- Self-Hosting with Docker: Docker Compose files, volume mounts, architecture support, and container updates.
- Spotify Developer App Setup: Step-by-step instructions to create your Spotify OAuth application and set Redirect URIs.
- Reverse Proxy Configuration: Production HTTPS and WebSocket upgrade configurations for Caddy, Nginx, and Traefik.
- Troubleshooting & Diagnostics: Debugging Spotify rate limits, token encryption issues, clock skew, and log outputs.