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

Informazioni sul progetto

installs and configures Navidrome music server and streamer see more info at https://www.navidrome.org/about/

Installa
ansible-galaxy install zfuller.navidrome
Licenza
gpl-3.0
Download
233
Proprietario
DevOps Engineer