26 lines
1.5 KiB
Markdown
26 lines
1.5 KiB
Markdown
# 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`).
|
|
|
|
## 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).
|