1.5 KiB
1.5 KiB
Technology Stack - JuiceNavidrome
Core Infrastructure
- Nomad: Orchestrates the deployment of the Navidrome service across the cluster nodes.
- Consul: Handles service discovery, health monitoring, and the distributed locking required for LiteFS leader election.
- Docker: Provides the container runtime environment for Navidrome and LiteFS.
Storage & Database
- SQLite: The primary relational database used by Navidrome for metadata and state.
- LiteFS: A FUSE-based filesystem that provides synchronous replication of the SQLite database across the cluster.
- Process Management: LiteFS-supervised with TTL-based self-registration for clean and resilient service catalog management.
- Hybrid Storage Model:
- Replicated: SQLite database on LiteFS FUSE mount (
/data). - Shared: Plugins, cache, and backups on persistent network storage (
/shared_data).
- Replicated: SQLite database on LiteFS FUSE mount (
Automation & Delivery
- Gitea Actions: Automates the multi-arch (AMD64/ARM64) building and pushing of the custom supervised container image.
- Git: Source control for all infrastructure-as-code artifacts.
Networking
- Traefik: Acts as the cluster's ingress controller, routing traffic based on Consul tags.
- LiteFS Proxy: Handles transparent write-forwarding to the cluster leader.
Monitoring & Tooling
- Python (Cluster Status Script): A local CLI tool for hybrid monitoring using Nomad (discovery & uptime), Consul (service health), and LiteFS HTTP API (internal replication state).