Your self-hosted music universe.
One place for your library, discovery, shared listening and personal Navidrome instances.
Get started Β· Documentation Β· Deployment Β· Android APK
Navipod is a personal, self-hosted music platform built around isolated Navidrome instances per user, a central FastAPI concierge, an isolated downloader worker, and a shared music pool. It brings your local library together with discovery from YouTube, Spotify, Last.fm and MusicBrainz, while keeping the server under your control.
Important
Navipod is licensed for private, personal, non-commercial use only. It is not an open-source license. See LICENSE for the binding terms.
Search local music and remote providers from one interface, preview results, download tracks and enrich metadata without jumping between services. | Each user gets an isolated Navidrome container while Navipod handles orchestration, shared storage and the surrounding experience. |
Create synchronized listening rooms with a shared queue, host controls, playlist seeding and optional guest additions from the local library. | Repeat, Deep Cuts, Favorites and Rediscovery mixes sit alongside recommendations and smart playlists that react to your library. |
Use the web app, the native Android wrapper, or connect compatible Subsonic clients such as Amperfy, Tempo and Symfonium. | Admin tools cover users, library health, metadata rescans, rotating backups, monitoring and in-app updates. |
- Multi-user by design β isolated Navidrome containers managed by the concierge service.
- Unified discovery β local tracks plus YouTube, Spotify, Last.fm and MusicBrainz.
- Shared download pool β deduplication, metadata enrichment and reusable downloads.
- Library views β searchable and paginated artists, albums and genres.
- Smart playlists β editable rules, previews and automatic refreshes.
- Everyday player tools β persistent queues, lyrics, sleep timer, normalization and track fades.
- Playlist sharing β public playlists, synchronized read-only copies, custom covers and track ordering.
- Party Rooms β synchronized playback, room queues and host/guest controls.
- Subsonic compatibility β connect established mobile clients to each user's Navidrome instance.
- Self-hosting operations β updates, backups, monitoring and library maintenance from the admin UI.
flowchart LR
C[Browser / Android / Subsonic client] --> N[nginx]
N --> F[FastAPI Concierge]
F --> W[Isolated downloader worker]
F --> U1[Navidrome Β· User A]
F --> U2[Navidrome Β· User B]
F --> UX[Navidrome Β· User N]
F --> P[(Shared music pool)]
F --> D[(Navipod data / DB / backups)]
F --> R[Spotify / YouTube / Last.fm / MusicBrainz]
W --> R
The standard Docker stack contains the concierge, isolated downloader, nginx, per-user Navidrome containers, and an optional Cloudflare Tunnel connector. Persistent data is stored under /opt/saas-data by default. See Architecture for the full picture.
- Linux host
- Docker Engine +
docker compose - 2+ CPU cores and 4 GB RAM recommended
- SSD-backed storage recommended
- A domain + Cloudflare account only if using the default tunnel deployment
git clone https://github.com/sPROFFEs/Navipod
cd Navipod/Navipod
cp .env.example .env
nano .env # set SECRET_KEY, TUNNEL_TOKEN and DOMAIN
chmod +x setup.sh && ./setup.shsetup.sh checks Docker, prepares /opt/saas-data, builds the stack and can create the first admin user and import an existing library.
For LAN/VPN and direct-domain deployments, use the dedicated guide instead of adapting the default stack by hand.
| Mode | Best for | TLS | Public IP required |
|---|---|---|---|
| Cloudflared (default) | Easiest remote access | Cloudflare edge | No |
| Internal | LAN / VPN / development | None β HTTP only | No |
| Domain | Full control with your own public endpoint | Let's Encrypt | Yes |
β Choose and configure a deployment mode
Everything beyond the quick start lives in the documentation.
| Guide | Description |
|---|---|
| Installation | Install Navipod and prepare the host environment. |
| Deployment | Deploy with Cloudflare Tunnel, LAN access, or your own domain. |
| Configuration | Configure Navipod, providers, environment variables, and runtime options. |
| User Guide | Learn the main workflows and everyday features. |
| Party Rooms | Create shared rooms with synchronized playback and queues. |
| Importing Music | Import and organize an existing music library. |
| Android | Set up and use the Navipod Android application. |
| Subsonic | Connect compatible Subsonic clients to Navipod. |
| Administration | Manage users, libraries, updates, and maintenance tasks. |
| Backup & Restore | Back up Navipod data and restore an installation. |
| Troubleshooting | Diagnose common installation, playback, and connectivity issues. |
| Architecture | Understand Navipod's services, containers, storage, and data flow. |
| Security | Security considerations and recommended deployment practices. |
Looking for the full documentation index? See docs/README.md.
Backend: Python Β· FastAPI
Music server: Navidrome
Runtime: Docker Β· Docker Compose Β· nginx
Discovery: Spotify Β· YouTube Β· Last.fm Β· MusicBrainz
Remote access: Cloudflare Tunnel or direct TLS deployment
Clients: Web Β· Android Β· Subsonic-compatible apps
Navipod/
βββ README.md
βββ LICENSE
βββ docs/
βββ .github/
β βββ assets/
βββ Navipod/
βββ assets/
βββ concierge/
βββ deployment-templates/
βββ docker-compose.yaml
βββ nginx.conf
βββ setup.sh
βββ .env.example
Navipod uses a custom Personal Use Only license. Private, personal, non-commercial use and modification are allowed. Commercial use, redistribution, sublicensing and offering Navipod as a hosted service are prohibited without prior written permission.
Read the complete LICENSE before deploying or modifying the project.



