Navidrome: Difference between revisions

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>