blumeops/docs/zk/navidrome.md
Erich Blume b8104d75ad Move zk cards to docs/zk/ for documentation restructuring (#84)
## Summary
- Move all existing zettelkasten cards from `docs/` to `docs/zk/` as a temporary holding area
- Update `zk-docs` mise task to look in the new location
- Add `docs/README.md` explaining the Diataxis-based restructuring plan and target audiences

## Context
This is phase 1 of a multi-phase documentation restructuring effort. The goal is to reorganize docs to follow the Diataxis framework while serving multiple audiences:
1. Erich (owner) - knowledge graph/zk
2. Claude/AI agents - memory and context enrichment
3. New external readers - high-level overview
4. Potential operators/contributors - onboarding
5. Replicators - people wanting to duplicate the approach

## Testing
- [x] Verified `mise run zk-docs` still works with the new path
- [x] Updated obsidian.nvim config (in ~/.config/nvim) to point to new path

## Note
The obsidian.nvim config change is outside this repo but was made as part of this work.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/84
2026-02-03 09:13:50 -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