blumeops/docs/navidrome.md
Erich Blume c89e69e25f Add docs/ with blumeops zk cards (#82)
## Summary
- Move 21 blumeops-tagged zettelkasten cards from ~/code/personal/zk/ to docs/
- Create symlink ~/code/personal/zk/blumeops -> blumeops/docs for obsidian integration
- Update zk-docs mise task to read from local docs/ directory
- Add blumeops workspace to obsidian.nvim config (strict=true)

## Benefits
- Docs are now git-managed in the blumeops repo (visible on GitHub)
- Wiki links between blumeops docs continue to work via symlink
- obsidian-sync isolation: docs don't sync to work laptop
- Direct editing via obsidian.nvim with dedicated workspace

## Testing
- [x] Files moved to docs/ (21 files)
- [x] Symlink created: ~/code/personal/zk/blumeops -> blumeops/docs
- [x] zk-docs mise task updated and working
- [ ] Verify obsidian.nvim link resolution (after merge)
- [ ] Verify obsidian backlinks work

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

Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/82
2026-02-02 21:40:53 -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