Navidrome turns a folder of music into your own streaming service. It plays your collection in a browser, and on your phone through any of the many Subsonic music apps, without changing a single file.
On this page
At a glance#
- What it is
- Music Server Media
- Where it opens
- Music Server
On its own port at
http://your-server:port, ormusic.your-domainonce you have a domain - Updates
- Automatic A backup is taken first, and it rolls back if the update fails
- Backups
- Included Part of the daily backup when that's switched on
- Copies
- As many as you like Run several copies, each with its own data
What it's good for#
Navidrome is for the music you already own. Point it at your collection and it reads the tags, sorts everything into artists and albums, and gives you a tidy web player with playlists, favourites and a play history. It's small and quick, happy on modest hardware, and it copes with very large libraries.
Where it really earns its place is your phone. Navidrome speaks the Subsonic protocol, so dozens of polished music apps can stream from it, and many can download albums for when you're offline.
Navidrome or Funkwhale?
Funkwhale is the bigger music server: uploads through the browser, podcasts, and following from the fediverse. Choose Navidrome if you just want your own collection on your phone with as little fuss as possible. Jellyfin plays music too, but it's built around films and TV.
Signing in#
A new Navidrome has no accounts and asks whoever opens it first to create the admin. LibrePortal doesn't leave that open. While it installs, Navidrome is reachable only from the server itself; LibrePortal makes the admin through that same first-run form, checks the login works, and only then lets anyone else in.
The account is called admin. Its password is in the Login Details shown when the install finishes; press Welcome on the app's page to see it again. Open Navidrome with the Music Server button.
If the install couldn't make the account
If something went wrong (Navidrome didn't answer within two minutes, say), the install says so and leaves Navidrome reachable from the server only, so nobody else can claim it. The simplest fix is to uninstall it and install it again. Only restart it to open it up once you know the admin account exists.
Installed with 0.4.6 or earlier?
Older versions left the first-run form open for whoever got there first. If nobody ever made an account, the next time Navidrome starts after you update to 0.4.7, LibrePortal makes the admin account with a generated password and shows it in the Login Details. If Navidrome already has users, nothing changes.
Navidrome has no Tools tab in LibrePortal, so everything after this happens inside Navidrome. If you change the admin password there, the one LibrePortal shows you goes out of date. That doesn't break anything day to day, since LibrePortal only signs in to Navidrome to check an install (see the timezone note below), but it's worth noting the new one somewhere safe.
Getting your music in#
Navidrome has no upload page. It plays whatever is in its music folder on the server:
/libreportal-containers/navidrome/music
(or wherever you've moved Navidrome to). The folder belongs to Docker's own user on the server, dockerinstall, so copy your music in with sudo and hand it to that user. From a folder in your home directory, for example:
sudo rsync -a --chown=dockerinstall:dockerinstall ~/Music/ /libreportal-containers/navidrome/music/
Any layout works, because Navidrome goes by the tags inside the files rather than folder names. Artist/Album/01 Track.flac is still a good habit, and a cover.jpg in each album folder gives you artwork when the files don't carry their own.
Navidrome notices new files by itself, and LibrePortal also has it look through the whole folder every hour, so new albums turn up without you doing anything. Big collections take a while on the first scan.
Why Navidrome can't touch your files
LibrePortal gives Navidrome the music folder read-only. It can play your files, but it can never rename, retag or delete them, whatever happens inside the app.
Adding people#
Everyone should have their own account, so their playlists, favourites and play counts stay separate. Signed in as admin, you'll find Navidrome's user management in its menu; add each person there with a username and password. If someone wants a separate collection, you can run a second copy of Navidrome with its own music folder and its own accounts.
Listening on your phone#
In any Subsonic app, add a server with:
- Server: Navidrome's address, exactly as you open it in the browser, for example
http://192.168.1.50:5234(your port will differ). - Username and password: your normal Navidrome login.
A few that are well liked: Symfonium (Android, paid), Tempo and its fork Tempus (Android, free), substreamer (Android and iPhone), and play:Sub and Amperfy on iPhone. Feishin is a good desktop player. Navidrome's own website keeps a longer list.
LibrePortal leaves Navidrome's port open to anyone who can reach your server, with no extra login in front, because phone apps can't get past one. If you only listen at home, make it private and use the LibrePortal VPN when you're out. With a domain, Navidrome answers at music.your-domain, which is the tidier choice if you listen away from home without the VPN.
Good to know#
- Updates are automatic, with a backup taken first.
- Backups include everything in its app folder: the database with your accounts, playlists and play history, and the
musicfolder itself. A big collection makes a big first backup, so make sure your backup location has room. After that, only new files add to it. - Idle web sessions sign out after 24 hours. Phone apps aren't affected, since they sign in on every request.
- It runs on your server's timezone from 0.4.7. Installs made with 0.4.6 or earlier run on UTC, because the setting never reached the app, so the times in its logs are in UTC. Press Update Configuration on its Config tab, without changing anything, to fix that: it rewrites the app's compose file, which an update leaves alone, and keeps your accounts and playlists. It also checks the admin login as an install does, so if the password in the Login Details no longer works (you changed it inside Navidrome, or made the admin yourself before 0.4.7), Navidrome comes back reachable from the server only. Restart it to open it up again.
Addresses and ports#
Navidrome has one port. LibrePortal picks a free port number for each when you install, so yours will differ from anyone else's. The Config tab's Network section shows them, and the app's Open button uses the right one. "Anyone" means it's reachable from wherever your server is reachable; you can make it private later.
| What it is | Who can reach it | With a domain |
|---|---|---|
| Music Server | Anyone | music.your-domain |
Settings#
In its config file#
Navidrome's own settings aren't on the Config tab yet. They live in the app's config file, described here so you know they exist. How to change them.
| Setting | What it does | Starts as |
|---|---|---|
NameCFG_NAVIDROME_DISPLAY_NAME |
What this app is called on your dashboards. Leave empty to use its usual name | Empty |
Show on the LibrePortal DashboardCFG_NAVIDROME_SHOW_ON_DASHBOARD |
Whether this app gets a shortcut on the front page of the LibrePortal WebUI, separate from any Dashy dashboard Choices: true, false |
true |
Usage statisticsCFG_NAVIDROME_TELEMETRY |
Whether Navidrome may send anonymous usage statistics to insights.navidrome.org Choices: true, false |
false |
Outside music lookupsCFG_NAVIDROME_EXTERNAL_LOOKUPS |
Whether Navidrome may ask Last.fm, Spotify and Deezer for artist images and bios, and scrobble to Last.fm Choices: true, false |
false |
Detailed logsCFG_NAVIDROME_VERBOSE_LOGS |
Whether Navidrome writes its normal, chattier logs, including who connected, instead of only warnings and errors. Choices: true, false |
false |
Debug logging for 24 hoursCFG_NAVIDROME_DEBUG_LOGS |
Turn on to see everything Navidrome is doing while you look for a problem; it turns itself off after 24 hours. Choices: true, false |
false |
Tools#
Navidrome's Tools tab has 2 buttons for jobs you'd otherwise need a terminal for. Each one runs as a task, so you can watch it on the Tasks page and read what it did. More about Tools.
Look for new music straight away. Navidrome also scans by itself every hour.
Play LibrePortal's SharedMusic folder, read-only, instead of Navidrome's own folder. It is the same folder ownCloud and Nextcloud show, and it is turned on if it is off. Navidrome restarts for a few seconds. Nothing is deleted either way.
Works with#
These are the other apps Navidrome knows how to work with. Once it's installed, its page shows the same list with whether each one is connected. How this works.
- Shared music folder: Plays the SharedMusic folder you fill from Nextcloud or ownCloud. Nothing is copied.
- Grafana: Shows dashboards for the apps that have one. works with every app
- Prometheus: Collects metrics from the apps that can export them. works with every app
- Uptime Kuma: Watches your apps and shows when one goes down. works with every app
Privacy and security#
All clear Navidrome plays your own music. LibrePortal turns off its anonymous usage numbers and the artist-picture lookups on Deezer and Last.fm.
What leaves this server#
- Last.fm and ListenBrainz scrobbling, only if you switch it on
What LibrePortal turns off#
- Detailed logs and per-request access logging (switchable in Config)
- Anonymous usage insights to navidrome.org (switchable in Config)
- Artist picture and biography lookups (Deezer, Last.fm) (switchable in Config)
Licence: GPL-3.0. Audited: 21 October 2026. See the privacy of every app and the Promise.
Sources#
Under the hood#
- It runs this image:
deluan/navidrome:0.64.2@sha256:38dc2727bfcfd5ede290f8ada114fc90368146f265ae4701ddddbcbe2a44ee52. - It can sit behind Authelia's sign-in once Authelia is installed.
- Its own project and documentation: github.com/navidrome/navidrome
Ports, settings, tools and connections on this page are read from LibrePortal v0.10.97's app catalogue each time the guide is built.