blumeops/docs/zk/navidrome.md
Erich Blume 7112297150 Move zk cards to docs/zk/ for documentation restructuring
Phase 1 of docs restructuring: move all zettelkasten cards to a
temporary docs/zk/ subdirectory while preparing to build a new
Diataxis-based documentation structure.

- Move all existing markdown files from docs/ to docs/zk/
- Update zk-docs mise task to look in the new location
- Add docs/README.md explaining the restructuring plan

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 07:57:47 -08:00

1.8 KiB

id aliases tags
navidrome
DJ
blumeops
service

Navidrome is a self-hosted music streaming server deployed on blumeops.

Access

Deployment

Navidrome runs in Kubernetes (minikube on indri) and is managed via argocd.

Manifests: argocd/manifests/navidrome/

Storage

Mount Type Source Access
/music NFS PV sifaka:/volume1/music Read-only
/data Local PVC (10Gi) minikube storage class Read-write

The /data directory contains:

  • SQLite database
  • Configuration
  • Cache files

Configuration

Environment variables set in deployment:

  • ND_SCANSCHEDULE=1h - Rescan library every hour
  • ND_LOGLEVEL=info - Standard logging level
  • ND_MUSICFOLDER=/music - Music library path
  • ND_DATAFOLDER=/data - Data directory path

Initial Setup

On first access, Navidrome will prompt to create an admin user. No default credentials.

Operations

Sync Application

argocd app sync navidrome

Check Status

argocd app get navidrome
kubectl --context=minikube-indri -n navidrome get pods
kubectl --context=minikube-indri -n navidrome logs deploy/navidrome

Verify NFS Mount

kubectl --context=minikube-indri -n navidrome exec deploy/navidrome -- ls /music

Force Library Rescan

Access Settings > Library in the web UI, or trigger via API:

curl -X POST https://dj.ops.eblu.me/api/library/scan -H "x-nd-authorization: Bearer <token>"

Related

  • jellyfin - Video streaming (runs on indri directly)
  • argocd - GitOps deployment
  • blumeops - Infrastructure overview