141 lines
6 KiB
Markdown
141 lines
6 KiB
Markdown
# Navidrome
|
|
|
|
[Navidrome](https://www.navidrome.org/) is a [Subsonic-API](http://www.subsonic.org/pages/api.jsp) compatible music server.
|
|
|
|
|
|
## Dependencies
|
|
|
|
This service requires the following other services:
|
|
|
|
- a [Traefik](traefik.md) reverse-proxy server
|
|
|
|
|
|
## Configuration
|
|
|
|
To enable this service, add the following configuration to your `vars.yml` file and re-run the [installation](../installing.md) process:
|
|
|
|
```yaml
|
|
########################################################################
|
|
# #
|
|
# 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](#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](syncthing.md) 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](aux.md) role to create some shared directory like this:
|
|
|
|
```yaml
|
|
########################################################################
|
|
# #
|
|
# 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:
|
|
|
|
```yaml
|
|
########################################################################
|
|
# #
|
|
# 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:
|
|
|
|
```yaml
|
|
########################################################################
|
|
# #
|
|
# 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](#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](https://www.navidrome.org/docs/overview/#apps) (desktop, web, mobile) to your Navidrome instance.
|
|
|
|
|
|
## Recommended other services
|
|
|
|
- [Syncthing](syncthing.md) - a continuous file synchronization program which synchronizes files between two or more computers in real time. See [Syncthing integration](#syncthing-integration)
|