Skip to content

Repository files navigation

Navipod

Navipod

Your self-hosted music universe.
One place for your library, discovery, shared listening and personal Navidrome instances.

QualityVersionDockerPythonLicense

Get started Β· Documentation Β· Deployment Β· Android APK

image

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.

Why Navipod?

🎧 Search beyond your library

Search local music and remote providers from one interface, preview results, download tracks and enrich metadata without jumping between services.

πŸ‘€ Isolated multi-user streaming

Each user gets an isolated Navidrome container while Navipod handles orchestration, shared storage and the surrounding experience.

πŸŽ‰ Party Rooms

Create synchronized listening rooms with a shared queue, host controls, playlist seeding and optional guest additions from the local library.

🧠 Personal mixes

Repeat, Deep Cuts, Favorites and Rediscovery mixes sit alongside recommendations and smart playlists that react to your library.

πŸ“± Web, Android & Subsonic

Use the web app, the native Android wrapper, or connect compatible Subsonic clients such as Amperfy, Tempo and Symfonium.

πŸ› οΈ Built-in operations

Admin tools cover users, library health, metadata rescans, rotating backups, monitoring and in-app updates.

See it in action

Navipod Public playlists
Public
Share playlists with other users on the server.
Navipod Search
Search
Local and remote discovery in one place.
Navipod Party Room
Party
Synchronized playback and a shared queue.
Navipod Mobile
Mobile
Android wrapper with system media controls.

Highlights

  • 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.

How it works

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
Loading

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.

Quick Start

Requirements

  • 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

Default deployment: Cloudflare Tunnel

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.sh

setup.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.

Deployment modes

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

Documentation

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.

Tech stack

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

Repository layout

Navipod/
β”œβ”€β”€ README.md
β”œβ”€β”€ LICENSE
β”œβ”€β”€ docs/
β”œβ”€β”€ .github/
β”‚   └── assets/
└── Navipod/
    β”œβ”€β”€ assets/
    β”œβ”€β”€ concierge/
    β”œβ”€β”€ deployment-templates/
    β”œβ”€β”€ docker-compose.yaml
    β”œβ”€β”€ nginx.conf
    β”œβ”€β”€ setup.sh
    └── .env.example

License

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.

About

Personal music platform with isolated Navidrome user containers, a FastAPI control plane, multi-source remote search, and a shared download pool.

Topics

Resources

Security policy

Stars

5 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages