zfuller.navidrome
Navidrome
This Ansible role installs and sets up the Navidrome self-hosted music server on a Linux machine. It downloads the latest version of Navidrome from GitHub and applies any custom settings you provide in the navidrome.toml
file using the navidrome_config
variable. It also sets up the systemd service.
After installation, you can access the Navidrome server using a web browser at the server's IP address or domain name on port 4533. Make sure to create an admin user right after the first installation.
For more details, check the Getting Started guide on the Navidrome website.
Please note, this is not an official Navidrome role. It is a personal project I created for my use and I'm sharing it with the community.
Requirements
Navidrome can run by itself or with a web server using a reverse proxy.
Role Variables
The key variable to set is the MusicFolder
variable, which specifies where your music library is located. Everything else can remain as default.
If you want to learn about other variables you can customize, visit configuration-options for more choices and explanations.
navidrome_user: www-data
navidrome_group: www-data
navidrome_release_url: https://github.com/navidrome/navidrome/releases
navidrome_temp_location: /tmp
navidrome_install_location: /opt
navidrome_config_dir: /var/lib/navidrome
navidrome_config_file: navidrome.toml
navidrome_pid_file: /var/run/navidrome.pid
navidrome_package_requirements:
- ffmpeg
# The following are just a few configuration options Navidrome accepts.
# You can add more settings as needed.
navidrome_config:
MusicFolder: # Default: "{{ navidrome_config_dir }}/music"
DataFolder: # Default: "{{ navidrome_config_dir }}/data"
LogLevel: # Default: "info"
Address: # Default: 0.0.0.0 and :: (all IPs)
BaseUrl: # Default: (empty)
Port: # Default: 4533
AuthRequestLimit: # Default: 5
AuthWindowLength: # Default: "20s"
AutoImportPlaylists: # Default: true
CoverArtPriority: # Default: cover.*, folder.*, front.*, embedded, external
CoverJpegQuality: # Default: 75
DefaultDownsamplingFormat: # Default: opus
DefaultLanguage: # Default: "en"
DefaultTheme: # Default: Dark
...
UILoginBackgroundUrl: # Default: random music image from Unsplash.com
UIWelcomeMessage: # Default: (empty)
Dependencies
None
Example Playbook
- name: setup navidrome
hosts: navidrome
gather_facts: yes
vars:
navidrome_config:
EnableGravatar: true
EnableDownloads: false
ImageCacheSize: "1GB"
MaxSidebarPlaylists: 5
CoverJpegQuality: 100
DefaultLanguage: "en"
MusicFolder: /home/music
SessionTimeout: "168h"
TranscodingCacheSize: "5GB"
AuthRequestLimit: 10
AuthWindowLength: "30m"
UIWelcomeMessage: "welcome"
roles:
- role: zfuller.navidrome_role
License
GPL-3.0-only
Author Information
zfuller
installs and configures Navidrome music server and streamer see more info at https://www.navidrome.org/about/
ansible-galaxy install zfuller.navidrome