UberLab

Howto

  • Connect via SSH
  • Use SSH keys
  • Migrate mail addresses
  • Create a static website

Guides

  • Ackee
  • Adminer
  • Akaunting
  • Alertmanager
  • Ampache
  • Antragsgrün
  • aptly
  • autossh
  • Baby Buddy
  • Baïkal
  • Beehive
  • Bludit
  • BookStack
  • Buildbot
  • Chez Scheme
  • Cloudlog
  • code-server
  • Commento
  • Conduit
  • Contao
  • CouchDB
  • Cryptpad
  • Directus
  • Django
  • Docusaurus
  • Dokuwiki
  • Drupal
  • Easy Appointments
  • ejabberd
  • Embetty
  • EQdkp Plus
  • EteSync Server
  • EtherCalc
  • Etherpad Lite
  • eturnal
  • ezmlm-idx
  • FastAPI
  • Fathom Lite
  • File Browser
  • Firefly III
  • Flarum
  • Flask
  • Flatboard
  • Fluentd
  • Focalboard
  • Forgejo
  • Foundry VTT
  • Framadate
  • FreshRSS
  • Friendica
  • Gitea
  • GitLab Runner
  • GoAccess
  • Gollum
  • Gotify
  • Grafana
  • Grafana Loki
  • GraphHopper
  • Grav
  • Grocy
  • Guillotine
  • Haste
  • HedgeDoc
  • Home Assistant
  • Hugo
  • HumHub
  • Icecast2
  • InfluxDB 2
  • Invoice Ninja
  • InvoicePlane
  • ionCube Loader
  • Isso
  • Jekyll
  • Jellyfin
  • Jenkins
  • Jingo
  • Joomla!
  • Jupyter Notebook
  • Kanboard
  • Keycloak
  • Kimai
  • Kirby
  • LibreOffice Online
  • LimeSurvey
  • LinkAce
  • listmonk
  • LittleLink Custom
  • Lychee
  • MagicMirror²
  • Mailman 2
  • Mailman 3
  • Matomo
  • Mattermost
  • Memcached
  • Miniflux
  • minim
  • MinIO
  • MongoDB
  • Monica
  • Moodle
  • Mosh
  • Mosquitto
  • Mumble
  • Navidrome
    • Prerequisites
    • Installation
    • Configuration
    • Finishing installation
    • Best practices
    • Updates
    • Debugging
  • Neos
  • Nextcloud
  • Node-RED
  • notify_push
  • ntfy
  • OctoberCMS
  • Offen
  • OpenSlides
  • Open Web Analytics
  • osTicket
  • Part-DB
  • Passbolt
  • Pelican
  • PhantomBot
  • PHP-Fusion
  • phpBB
  • PHP Server Monitor
  • Piwigo
  • Pixelfed
  • Pleroma
  • PostgreSQL
  • pretix
  • PrivateBin
  • ProcessWire
  • prometheus
  • Prosody
  • Puma
  • Radicale
  • Redis
  • Redmine
  • Resilio Sync
  • Restic
  • Roundcube
  • SaltStack
  • Composer Satis
  • Searx
  • selfoss
  • Shaarli
  • ShareX
  • Shell In A Box
  • Shiori
  • Shopware 5
  • Shopware 6
  • SimpleID
  • Starship
  • Statping
  • Sulu CMS
  • Symfony
  • Synapse
  • Syncthing
  • Tarsnap
  • Taskd
  • TeamCity
  • Teamspeak
  • The Lounge
  • TiddlyWiki
  • TimeTagger
  • Tomcat
  • TS3AudioBot
  • TYPO3 CMS
  • umami
  • Up1
  • Uptime-Kuma
  • uuNotify
  • vaultwarden
  • Vikunja
  • Volkszaehler.org
  • Wallabag
  • Wiki.js
  • Web Key Directory (WKD)
  • WordPress
  • WordPress with Bedrock
  • Writefreely
  • WsgiDAV
  • xBrowserSync API
  • YOURLS
  • ZNC

Meta

  • 👑 Hall of Fame
  • Repository
  • Changelog
  • Legal Notice
  • Privacy
UberLab
  • Lab »
  • Navidrome
  • Edit on GitHub | View Changelog

Logo

https://d33wubrfki0l68.cloudfront.net/d83b0fb15f6c6edf927b17799e4b77e87d29c78c/44f08/_images/navidrome.png

Navidrome¶

#Go #JavaScript #mediaplayer #React #streaming #Subsonic #web 

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>

Built with Sphinx using a modified version of a theme provided by Read the Docs.
Licensed under CC-BY-NC-SA 4.0, uberspace.de. All project logos are property of the respective project.