Skip to content

Commit

Permalink
[navidrome] add guide for navidrome
Browse files Browse the repository at this point in the history
  • Loading branch information
jimToo authored and SalocinHB committed Dec 15, 2022
1 parent b9298df commit dece495
Showing 1 changed file with 156 additions and 0 deletions.
156 changes: 156 additions & 0 deletions source/guide_navidrome.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
.. highlight:: console
.. author:: marci <marci@uber.space>
.. tag:: React
.. tag:: web
.. tag:: mediaplayer
.. tag:: streaming
.. tag:: Subsonic
.. tag:: Go
.. tag:: JavaScript

.. sidebar:: Logo

.. image:: _static/images/navidrome.png
:align: center

#########
Navidrome
#########

.. tag_list::


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:

.. include:: includes/web-domain-list.rst

We need a directory to store the Navidrome executable and a directory as Navidrome working directory. And we also create a directory for the music-files:

.. code-block:: console
[isabell@stardust ~]$ mkdir --parents ~/opt/navidrome
[isabell@stardust ~]$ mkdir --parents ~/var/lib/navidrome
[isabell@stardust ~]$ mkdir --parents ~/music
[isabell@stardust ~]$
Installation
============

Now we download the latest release and it's checksum from the github-page_:

.. code-block:: console
[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, we check the integrity of the tar-archive. If hashsums are matching, we extract the archive to our directory for the executable of Navidrome:

.. code-block:: console
[isabell@stardust ~]$ sha256sum --check navidrome_checksums.txt
[isabell@stardust ~]$ tar -xvzf navidrome_0.47.5_Linux_x86_64.tar.gz -C ~/opt/navidrome
[isabell@stardust ~]$
The downloaded files can then be deleted:

.. code-block:: console
[isabell@stardust ~]$ rm navidrome_0.47.5_Linux_x86_64.tar.gz
[isabell@stardust ~]$ rm navidrome_checksums.txt
[isabell@stardust ~]$
Configuration
=============

Create config file
------------------
We create the configuration-file ``~/var/lib/navidrome/navidrome.toml`` in the working directory of Navidrome and add the following line:

.. code-block:: ini
MusicFolder = '/home/isabell/music/'
For a more detailed configuration we can check the configuration-options-page_.

Setup daemon
------------
We setup the service for Navidrome and therefore create ``~/etc/services.d/navidrome.ini`` with the following content:

.. code-block:: ini
[program:navidrome]
directory=/home/isabell/var/lib/navidrome
command=/home/isabell/opt/navidrome/navidrome --configfile "/home/isabell/var/lib/navidrome/navidrome.toml"
startsecs=60
autorestart=yes
.. include:: includes/supervisord.rst

By default Navidrome is running on port 4533.

.. include:: includes/web-backend.rst


Finishing installation
======================

Now we can create an admin account by visiting https://isabell.uber.space with our favorite browser. And of course, we use a good password for the administrator-account.

Best practices
==============

To get our music to Navidrome, we tag the music-files on our personal computer and afterwards upload it via rsync over ssh:

.. code-block:: console
[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, we unzip the new code-archive into ``~/opt/navidrome/`` and restart our navidrome-service:

.. code-block:: console
[isabell@stardust ~]$ supervisorctl restart navidrome
[isabell@stardust ~]$
Debugging
=========
We can check the service’s log file using:

.. code-block:: console
[isabell@stardust ~]$ supervisorctl tail navidrome stderr
[isabell@stardust ~]$
.. _demo-page: https://www.navidrome.org/demo/
.. _Navidrome: https://www.navidrome.org/
.. _github-page: https://github.com/navidrome/navidrome
.. _release-page: https://github.com/navidrome/navidrome/releases
.. _configuration-options-page: https://www.navidrome.org/docs/usage/configuration-options/

----

Tested with Navidrome v0.47.5 and Uberspace v7.13.0

.. author_list::

0 comments on commit dece495

Please sign in to comment.