Navidrome
Navidrome allows you to enjoy your music collection from anywhere, by making it available through a modern Web UI and through a wide range of third-party compatible mobile apps.
If you want to try out Navidrome without installing it first, visit the demo-page.
Prerequisites
Our Navidrome URL needs to be setup:
[isabell@stardust ~]$ uberspace web domain list
isabell.uber.space
[isabell@stardust ~]$
You need a directory to store the Navidrome executable, a directory as Navidrome working directory, and a directory for the music-files:
[isabell@stardust ~]$ mkdir --parents ~/opt/navidrome
[isabell@stardust ~]$ mkdir --parents ~/var/lib/navidrome
[isabell@stardust ~]$ mkdir --parents ~/music
[isabell@stardust ~]$
Installation
Now download the latest release and it’s checksum from the github-page:
[isabell@stardust ~]$ wget https://github.com/navidrome/navidrome/releases/download/v0.47.5/navidrome_0.47.5_Linux_x86_64.tar.gz
[isabell@stardust ~]$ wget https://github.com/navidrome/navidrome/releases/download/v0.47.5/navidrome_checksums.txt
[isabell@stardust ~]$
After downloading, check the integrity of the tar-archive. If hashsums are matching, extract the archive to our directory for the executable of Navidrome:
[isabell@stardust ~]$ sha256sum --check navidrome_checksums.txt 2>&1 | grep Linux_x86_64
[isabell@stardust ~]$ navidrome_0.47.5_Linux_x86_64.tar.gz: OK
[isabell@stardust ~]$ tar -xvzf navidrome_0.47.5_Linux_x86_64.tar.gz -C ~/opt/navidrome
LICENSE
README.md
navidrome
[isabell@stardust ~]$
The downloaded files can then be deleted:
[isabell@stardust ~]$ rm navidrome_0.47.5_Linux_x86_64.tar.gz
[isabell@stardust ~]$ rm navidrome_checksums.txt
[isabell@stardust ~]$
Configuration
Create config file
Create the configuration-file ~/var/lib/navidrome/navidrome.toml
and add the following line:
MusicFolder = '/home/<username>/music/'
For a more detailed configuration check the configuration-options-page.
Setup daemon
Setup the service for Navidrome and therefore create ~/etc/services.d/navidrome.ini
with the following content:
[program:navidrome]
directory=%(ENV_HOME)s/var/lib/navidrome
command=%(ENV_HOME)s/opt/navidrome/navidrome --configfile %(ENV_HOME)s/var/lib/navidrome/navidrome.toml
startsecs=60
autorestart=yes
After creating the configuration, tell supervisord to refresh its configuration and start the service:
[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE RUNNING pid 26020, uptime 0:03:14
[isabell@stardust ~]$
By default Navidrome is running on port 4533.
To make the application accessible from the outside, configure a web backend:
[isabell@stardust ~]$ uberspace web backend set / --http --port <port>
Set backend for / to port <port>; please make sure something is listening!
You can always check the status of your backend using "uberspace web backend list".
[isabell@stardust ~]$
Finishing installation
Now, create an admin account by visiting https://isabell.uber.space with your favorite browser. And of course, use a good password for the administrator-account!
Best practices
To get music into Navidrome, tag the music-files on your personal computer and afterwards upload them via rsync over ssh:
[isabell@stardust ~]$ rsync --recursive --times --progress --protect-args /home/isabell/music/ isabell.uber.space:/home/isabell/music
[isabell@stardust ~]$
Updates
Note
Check the release-page regularly to stay informed about updates.
To upgrade, unzip the new code-archive into ~/opt/navidrome/
and restart our navidrome-service:
[isabell@stardust ~]$ supervisorctl restart navidrome
[isabell@stardust ~]$
Debugging
You can check the service’s log file using:
[isabell@stardust ~]$ supervisorctl tail navidrome stderr
[isabell@stardust ~]$
Tested with Navidrome v0.47.5 and Uberspace v7.13.0
Written by: marci <marci@uber.space>