-- Leo's gemini proxy

-- Connecting to darknesscode.xyz:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=en-US

Navidrome


Is a self host music streaming service, if you are like me and you own your own music *Navidrome* is your best choice.


>Navidrome can be used as a standalone server, that allows you to browse and listen to your music collection using a web browser.


>It can also work as a lightweight Subsonic-API compatible server, that can be used with any Subsonic compatible client.


Install Navidrome


Two ways to install and use *Navidrome*


Docker (compose)


One easy way to use or test *Navidrome* is with docker and docker-compose.


version: "3.1"
services:
  navidrome:
    image: deluan/navidrome:latest
    user: 1000:1000 # should be owner of volumes
    ports:
      - "4533:4533"
    restart: unless-stopped
    environment:
      # Optional: put your config options customization here. Examples:
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
    volumes:
      - "/path/to/data:/data"
      - "/path/to/your/music/folder:/music:ro"

Changes "/path/to/data" to the directory in where you wants to store the *Navidrome* data in the host computer and "/path/to/your/music/folder" to the directory that has all your music.


Binary Package


Install *Navidrome* like a native application using the binary pakage


The only prerequisite that *Navidrome* needs is ffmpeg to be installed in the system


sudo apt install ffmpeg

Create two directory to storage the executable and the database that *Navidrome* will use


sudo install -d -o $USER -g $USER /opt/navidrome
sudo install -d -o $USER -g $USER /var/lib/navidrome

Get the latest *Navidrome* release and move it to /opt/navidrome/


wget https://github.com/navidrome/navidrome/releases/download/v0.XX.0/navidrome_0.XX.0_Linux_x86_64.tar.gz -O Navidrome.tar.gz
sudo tar -xvzf Navidrome.tar.gz -C /opt/navidrome/
sudo chown -R $USER:$USER /opt/navidrome

Change the *Navidrome* number version before you use the wget command


Navidrome config file


In /var/lib/navidrome create a new file named navidrome.toml


sudo vim /var/lib/navidrome/navidrome.toml

Now add only this line in the file and change <music_path> to you music directory


MusicFolder = "<music_path>"

Start Navidrome with a systemd unit


Create a new file named navidrome.service


sudo vim /etc/systemd/system/navidrome.service

Copy and paste the following and change under Service <user> and <group> with your username and group


[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=<user>
Group=<group>
Type=simple
ExecStart=/opt/navidrome/navidrome --configfile "/var/lib/navidrome/navidrome.toml"
WorkingDirectory=/var/lib/navidrome
TimeoutStopSec=20
KillMode=process
Restart=on-failure

# See https://www.freedesktop.org/software/systemd/man/systemd.exec.html
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

# You can uncomment the following line if you're not using the jukebox This
# will prevent navidrome from accessing any real (physical) devices
#PrivateDevices=yes

# You can change the following line to `strict` instead of `full` if you don't
# want navidrome to be able to write anything on your filesystem outside of
# /var/lib/navidrome.
ProtectSystem=full

# You can uncomment the following line if you don't have any media in /home/*.
# This will prevent navidrome from ever reading/writing anything there.
#ProtectHome=true

# You can customize some Navidrome config options by setting environment variables here. Ex:
#Environment=ND_BASEURL="/navidrome"

Reload the service daemon and start the newly created service


sudo systemctl daemon-reload
sudo systemctl start navidrome.service
sudo systemctl status navidrome.service

If the service has started correctly verify you can access http://localhost:4533 or using the ip address of the computer in that you use to install it and follow the instructions to setup *Navidrome*


If everything is working, now enable the daemon to start *Navidrome* at boot


sudo systemctl enable navidrome.service

Apps


There are several apps to use with Navidrome, here is a short list of the apps i use:


- Terminal Base (TUI)

smtp

sksonic


- Grafical Base (UI)

Sonixd

Web UI (Navidrome)

Subtracks (Android)


For more information check the documentation


Navidrome Documentation


----------


Home

Linux

Notes

MicroLog


----------


© DarknessCode

-- Response ended

-- Page fetched on Tue May 21 23:42:26 2024