Navidrome¶
Music server. Best there is, flawless.
Clients¶
I use feishin as a desktop app.
I use subtracks on android.
Installation¶
Install (replace version in wget with latest github release):
apt update
apt upgrade
apt install ffmpeg
mkdir -p /opt/navidrome
mkdir -p /var/lib/navidrome
install -d -o alchemy -g alchemy /opt/navidrome
install -d -o alchemy -g alchemy /var/lib/navidrome
wget https://github.com/navidrome/navidrome/releases/download/v0.53.3/navidrome_0.53.3_linux_amd64.tar.gz -O Navidrome.tar.gz
tar -xvzf Navidrome.tar.gz -C /opt/navidrome/
chown -R alchemy:alchemy /opt/navidrome
nano /var/lib/navidrome/navidrome.toml
==============
MusicFolder = "/shares/media/Music"
==============
Systemd Service
nano /etc/systemd/system/navidrome.service
[Unit]
Description=Navidrome Music Server and Streamer compatible with Subsonic/Airsonic
After=remote-fs.target network.target
AssertPathExists=/var/lib/navidrome
[Install]
WantedBy=multi-user.target
[Service]
User=alchemy
Group=alchemy
Type=simple
ExecStart=/opt/navidrome/navidrome --configfile "/var/lib/navidrome/navidrome.toml"
WorkingDirectory=/var/lib/navidrome
TimeoutStopSec=20
KillMode=process
Restart=on-failure
DevicePolicy=closed
NoNewPrivileges=yes
PrivateTmp=yes
PrivateUsers=yes
ProtectControlGroups=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
RestrictNamespaces=yes
RestrictRealtime=yes
SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap
ReadWritePaths=/var/lib/navidrome
ProtectSystem=full
Start it up
systemctl daemon-reload
systemctl enable navidrome.service
systemctl stop navidrome.service
systemctl start navidrome.service
journalctl -e -u navidrome.service
Tricks¶
Clear Playlists¶
sudo systemctl stop navidrome
sqlite3 /var/lib/navidrome/navidrome.db "DELETE FROM playlist_tracks; DELETE FROM playlist;"
sudo systemctl start navidrome