# 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 a leadership-aware entrypoint script ensuring Navidrome only runs on the primary node. ## 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 monitoring Consul service registration, LiteFS replication status, and diagnosing Nomad allocation logs.