Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
ops-library 2.4.0
ops-library 2.4.0

Contents

  • Architecture Overview
  • Testing
  • Testing Guide for ops-library
  • Testing ops-library
  • Role Catalog
    • Deployment Roles
      • FastDeploy Deploy Role
      • FastDeploy Self-Deployment Role
      • Nyxmon Deploy Role
      • logyard_deploy
      • logyard_vector_deploy
      • logyard_ingress_deploy
      • graphyard_ingress_deploy
      • graphyard_auth_bootstrap_deploy
      • Traefik Deploy Role
      • DNS Deploy Role
      • tailscale_deploy
      • Homelab Deploy Role
      • Home Assistant Deploy
      • OTBR Deploy
      • UniFi Deploy Role
      • Paperless Deploy Role
      • MinIO Deploy Role
      • Minecraft Java Deploy Role
      • Navidrome Deploy Role
      • Jellyfin Deploy Role
      • MeTube Deploy
      • Open WebUI Deploy Role
      • Open WebUI Venv Deploy Role
      • Ollama Proxy Deploy Role
      • OpenClaw Deploy
      • Mastodon Deploy Role
      • Mastodon Shared Role
      • SnappyMail Deploy Role
      • Takahe Deploy Role
      • Takahe Shared Role
      • Mail Backend Deploy
      • Mail Relay Deploy
      • Certbot DNS Deploy
      • voxhelm_deploy
      • voxhelm_ingress_deploy
      • zellij_ingress_deploy
    • Removal Roles
      • FastDeploy Remove Role
      • Nyxmon Remove Role
      • Traefik Remove Role
      • DNS Remove Role
      • Home Assistant Remove
      • Homelab Remove
      • UniFi Remove Role
      • Paperless Remove Role
      • MinIO Remove Role
      • tailscale_remove
      • Minecraft Java Remove Role
      • Navidrome Remove Role
      • Jellyfin Remove Role
      • MeTube Remove
      • Open WebUI Remove Role
      • Open WebUI Venv Remove Role
      • Mastodon Remove Role
      • Takahe Remove Role
      • ollama_remove
      • ollama_proxy_remove
    • Operations Roles
      • Home Assistant Backup
      • Home Assistant Restore
      • Paperless Backup Role
      • Paperless Restore Role
      • FastDeploy Backup Role
      • FastDeploy Restore Role
      • Nyxmon Backup Role
      • Nyxmon Restore Role
      • Homelab Backup
      • Homelab Restore
      • UniFi Backup Role
      • UniFi Restore Role
      • MinIO Backup Role
      • MinIO Restore Role
      • minio_offsite_replication
      • mail_offsite_replication
      • OS APT Maintenance Role
      • Navidrome Backup Role
      • Navidrome Restore Role
      • Takahe Backup Role
      • Takahe Restore Role
      • Jellyfin Backup Role
      • Jellyfin Restore Role
      • MeTube Backup
      • MeTube Restore
      • Mastodon Backup Role
      • Mastodon Restore Role
      • Mastodon Maintenance Role
      • tailscale_backup
      • tailscale_restore
      • Minecraft Java Backup Role
      • Minecraft Java Restore Role
      • ZFS Syncoid Replication
      • ZFS USB Replication
    • Registration Roles
      • APT Upgrade Register Role
      • FastDeploy Service Registration Role
    • Bootstrap Roles
      • Ansible Install Role
      • boot_visible_i915
      • Docker Install Role
      • Dpkg Architecture Remove Role
      • Headless Mode
      • ollama_install
      • UV Install Role
      • SOPS Dependencies Role
      • Postgres Install Role
      • Redis Install Role
    • Testing Roles
      • Test Dummy Role
  • Service Lifecycle Guide
  • Paperless Scanner Configuration Guide
  • Traefik Wildcard Certs (file-provider)
  • OTBR with Home Assistant Connect ZBT-2
  • Changelog
Back to top
View this page
Edit this page

Navidrome Deploy Role¶

Deploys Navidrome as a systemd-managed service (no containers) with reverse-proxy exposure via Traefik and optional scheduled rescans.

Features¶

  • Installs pinned Navidrome release tarball to {{ navidrome_install_dir }} with optional /usr/local/bin symlink.

  • Creates dedicated navidrome system user, data/cache/log directories, and renders /etc/navidrome.toml.

  • Ships hardened systemd unit with configurable limits and optional navidrome-rescan.timer for periodic scans.

  • Generates Traefik dynamic config (dual-router pattern with internal allow list + basic auth).

Requirements¶

  • Debian/Ubuntu host with systemd.

  • Traefik file provider mounted at /etc/traefik/dynamic/ (for exposure).

  • htpasswd available (role installs apache2-utils).

Usage¶

- hosts: media
  become: true
  roles:
    - role: local.ops_library.navidrome_deploy
      vars:
        navidrome_external_url: "https://music.example.com"
        navidrome_traefik_host: "music.example.com"
        navidrome_music_folder: "/mnt/cryptdata/media/music"
        navidrome_basic_auth_user: "admin"
        navidrome_basic_auth_password: "{{ vault_traefik_basic_auth_password }}"
        navidrome_scan_schedule: "@every 6h"
        navidrome_rescan_timer_enabled: false

Key Variables¶

Variable

Default

Description

navidrome_version

0.58.5

Navidrome release to install (pinned).

navidrome_download_arch

auto

Architecture suffix (amd64/arm64), derived from ansible_architecture.

navidrome_download_checksum

per-arch

SHA256 for the selected tarball; override when bumping versions.

navidrome_music_folder

/mnt/cryptdata/media/music

Path to music library (read-only).

navidrome_data_dir

/var/lib/navidrome

Data/config/cache directory for Navidrome.

navidrome_external_url

https://music.example.com

External base URL (used by Subsonic clients and redirects).

navidrome_scan_schedule

@every 6h

Built-in scanner schedule (Scanner.Schedule).

navidrome_rescan_timer_enabled

false

Install a systemd timer calling navidrome scan; navidrome_rescan_full forces full scans.

navidrome_traefik_enabled

true

Render Traefik dynamic config with dual-router basic auth.

navidrome_basic_auth_user

navidrome

Basic auth username; requires either navidrome_basic_auth_password or _password_hash when enabled.

See defaults/main.yml and roles/navidrome_shared/defaults/main.yml for the full variable reference.

Next
Jellyfin Deploy Role
Previous
Minecraft Java Deploy Role
Copyright © 2025, Jochen Wersdörfer
Made with Sphinx and @pradyunsg's Furo
On this page
  • Navidrome Deploy Role
    • Features
    • Requirements
    • Usage
    • Key Variables