mash-playbook/docs/services/navidrome.md

6 KiB

Navidrome

Navidrome is a Subsonic-API compatible music server.

Dependencies

This service requires the following other services:

Configuration

To enable this service, add the following configuration to your vars.yml file and re-run the installation process:

########################################################################
#                                                                      #
# navidrome                                                            #
#                                                                      #
########################################################################

navidrome_enabled: true

navidrome_hostname: mash.example.com
navidrome_path_prefix: /navidrome

# By default, Navidrome will look at the /music directory for music files,
# controlled by the `navidrome_environment_variable_nd_musicfolder` variable.
#
# You'd need to mount some music directory into the Navidrome container, like shown below.
# The "Syncthing integration" section below may be relevant.
# navidrome_container_additional_volumes:
#   - type: bind
#     src: /on-host/path/to/music
#     dst: /music
#     options: readonly

########################################################################
#                                                                      #
# /navidrome                                                           #
#                                                                      #
########################################################################

URL

In the example configuration above, we configure the service to be hosted at https://mash.example.com/navidrome.

You can remove the navidrome_path_prefix variable definition, to make it default to /, so that the service is served at https://mash.example.com/.

Authentication

On first use (see Usage below), you'll be asked to create the first administrator user.

You can create additional users from the web UI after that.

Syncthing integration

If you've got a Syncthing service running, you can use it to synchronize your music directory onto the server and then mount it as read-only into the Navidrome container.

We recommend that you make use of the aux role to create some shared directory like this:

########################################################################
#                                                                      #
# aux                                                                  #
#                                                                      #
########################################################################

aux_directory_definitions:
  - dest: "{{ mash_playbook_base_path }}/storage"
  - dest: "{{ mash_playbook_base_path }}/storage/music"

########################################################################
#                                                                      #
# /aux                                                                 #
#                                                                      #
########################################################################

You can then mount this {{ mash_playbook_base_path }}/storage/music directory into the Syncthing container and synchronize it with some other computer:

########################################################################
#                                                                      #
# syncthing                                                            #
#                                                                      #
########################################################################

# Other Syncthing configuration..

syncthing_container_additional_volumes:
  - type: bind
    src: "{{ mash_playbook_base_path }}/storage/music"
    dst: /music

########################################################################
#                                                                      #
# /syncthing                                                           #
#                                                                      #
########################################################################

Finally, mount the {{ mash_playbook_base_path }}/storage/music directory into the Navidrome container as read-only:

########################################################################
#                                                                      #
# navidrome                                                            #
#                                                                      #
########################################################################

# Other Navidrome configuration..

navidrome_container_additional_volumes:
  - type: bind
    src: "{{ mash_playbook_base_path }}/storage/music"
    dst: /music
    options: readonly

########################################################################
#                                                                      #
# /navidrome                                                           #
#                                                                      #
########################################################################

Usage

After installation, you can go to the Navidrome URL, as defined in navidrome_hostname and navidrome_path_prefix.

As mentioned in Authentication above, you'll be asked to create the first administrator user the first time you open the web UI.

You can also connect various Subsonic-API-compatible apps (desktop, web, mobile) to your Navidrome instance.

  • Syncthing - a continuous file synchronization program which synchronizes files between two or more computers in real time. See Syncthing integration