Jump to content

Navidrome: Difference between revisions

From Official NixOS Wiki
Onny (talk | contribs)
Add note on file path permissions
Ahoneybun (talk | contribs)
add notes based on selfhosting experience
 
(3 intermediate revisions by one other user not shown)
Line 3: Line 3:
=== Setup ===
=== Setup ===
Simply add to your system configuration and apply<syntaxhighlight lang="nix">
Simply add to your system configuration and apply<syntaxhighlight lang="nix">
services.navidrome.enable = true;
services.navidrome = {
  enable = true;
  settings.MusicFolder = "/mnt/audio/music";
};
</syntaxhighlight>The service should be available add http://127.0.0.1:4533. Continue adding an admin login including setting a password.
</syntaxhighlight>The service should be available add http://127.0.0.1:4533. Continue adding an admin login including setting a password.


If you have your music library outside of the systemd unit profile path, you'll add to have it to <code>BindReadOnlypaths</code><syntaxhighlight lang="nix">
==== Setting to localhost ====
systemd.services.navidrome.serviceConfig = {
 
   BindReadOnlyPaths = [
<syntaxhighlight lang="nix">
    "/mnt/audio/music"
servces.navidrome = {
   ];
  settings = {
    Address = "0.0.0.0";
  };
};
</syntaxhighlight>
 
==== Open the Firewall ====
 
If it is enabled the following settings will open just for this port
 
<syntaxhighlight lang="nix">
servces.navidrome = {
  openFirewall = true;
};
</syntaxhighlight>
 
=== Tips and tricks ===
 
==== Import playlists ====
 
Place m3u or m3u8 playlist files in a specific folder, configure it in the Navidrome service and after a library scan it should get imported. In this example the playlist files are stored in <code>/mnt/audio/playlists</code>.
 
<syntaxhighlight lang="nix">
services.navidrome = {
   enable = true;
  settings.PlaylistsPath = "/mnt/audio/playlists";
};
</syntaxhighlight>
 
==== Enable sharing ====
Single tracks, albums or playlists can be publicly shared. To enable the feature, add
 
<syntaxhighlight lang="nix">
services.navidrome = {
   enable = true;
  settings.EnableSharing = true;
};
};
</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 18:38, 15 June 2026

Navidrome is a self-hosted music streaming server that allows users to manage and play their personal music collections from various devices. Designed with a user-friendly interface, it supports features like playlists, searching, and streaming, all while emphasizing privacy and data ownership.

Setup

Simply add to your system configuration and apply

services.navidrome = {
  enable = true;
  settings.MusicFolder = "/mnt/audio/music";
};

The service should be available add http://127.0.0.1:4533. Continue adding an admin login including setting a password.

Setting to localhost

servces.navidrome = {
  settings = {
    Address = "0.0.0.0";
  };
};

Open the Firewall

If it is enabled the following settings will open just for this port

servces.navidrome = {
  openFirewall = true;
};

Tips and tricks

Import playlists

Place m3u or m3u8 playlist files in a specific folder, configure it in the Navidrome service and after a library scan it should get imported. In this example the playlist files are stored in /mnt/audio/playlists.

services.navidrome = {
  enable = true;
  settings.PlaylistsPath = "/mnt/audio/playlists";
};

Enable sharing

Single tracks, albums or playlists can be publicly shared. To enable the feature, add

services.navidrome = {
  enable = true;
  settings.EnableSharing = true;
};