No description
  • Shell 74.8%
  • Jinja 25.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kevin Heyer 4b61a459a9
All checks were successful
/ lint (push) Successful in 7m30s
/ image (push) Successful in 27m35s
/ publish (push) Successful in 17s
Add Navidrome app with adopt for community-script installations
Navidrome from the .deb of the GitHub release (checksum from
navidrome_checksums.txt), ffmpeg, port 4533, sandboxed unit as user
navidrome, data in /var/lib/navidrome. The first administrator comes from
ND_DEVAUTOCREATEADMINPASSWORD (only used in Navidrome's initial setup), so
no setup wizard stays open. Unit and iac.env are written before the
package because its postinst restarts the service on upgrades.

adopt.sh takes over installations of the Proxmox VE community script
(same .deb) in place; a database without users gets its initial setup
reset so the iac admin is created.

Tested: lint (with ansible-core and systemd-analyze), check-app.sh
(install + smoke, second run changed=1), login with the access hint,
update 0.63.2 -> 0.64.2, adopt of a community install 0.63.2 with and
without an existing user (smoke green, following run changed=1).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 09:16:05 +02:00
.forgejo/workflows Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00
.vibe Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00
docs Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00
files Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00
handlers Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00
tasks Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00
templates Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00
tests Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00
.clinerules Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00
.cursorrules Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00
.windsurfrules Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00
AGENTS.md Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00
CHANGELOG.md Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00
CLAUDE.md Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00
GEMINI.md Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00
iac.json Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00
README.md Add Navidrome app with adopt for community-script installations 2026-10-22 09:16:05 +02:00

iac-navidrome

Navidrome ist ein Musikserver mit Web-Player und Subsonic-API – für Apps wie Symfonium, DSub, Feishin oder play:Sub. Aus dem offiziellen .deb des GitHub-Releases auf Debian 13 als LXC oder VM auf Proxmox VE. Teil von iac.

Installation (auf der Proxmox-Node)

bash -c "$(curl -fsSL https://iac.heyer.systems/navidrome/ct.sh)"   # LXC
bash -c "$(curl -fsSL https://iac.heyer.systems/navidrome/vm.sh)"   # VM

Ohne Dialog: IAC_NONINTERACTIVE=1 und var_*-Variablen – am einfachsten mit dem Generator auf https://iac.heyer.systems/apps/navidrome/.

Anmeldung und Zugriff

  • Weboberfläche und Subsonic-API: http://<ip>:4533/ – Port 4533 ist aus allen Netzen erreichbar (Navidrome hat ein eigenes Login). Für HTTPS einen Reverse Proxy davorsetzen.
  • Login: admin, Passwort im Gast: grep navidrome_admin_password /etc/iac/settings.env. Navidrome legt den Benutzer nur beim allerersten Start mit leerer Datenbank an; ein später geändertes Passwort bleibt. Den Einrichtungsassistenten im Browser gibt es dadurch nicht.
  • Navidrome schreibt das Startpasswort bei diesem ersten Start einmal ins Journal (lesbar für root und die Gruppen adm/systemd-journal) – nach dem ersten Login im Profil ändern.

Musik

Navidrome liest die Musik aus MusicFolder, Standard des Pakets: /opt/navidrome/music. Für eine Freigabe des Proxmox-Hosts im LXC einen Bind-Mount anlegen (auf der Node, Gast gestoppt):

pct set <ID> -mp0 /pfad/auf/dem/host,mp=/opt/navidrome/music,ro=1

Ein anderer Pfad: MusicFolder = "/mnt/musik" in /etc/navidrome/navidrome.toml, dann systemctl restart navidrome. Navidrome darf die Musik nur lesen (systemd-Sandbox) – auch unter /home. Neue Dateien findet der Scanner beim Start und über die Dateisystem-Überwachung; einen zeitgesteuerten Scan stellt Scanner.Schedule ein.

Einstellungen

Datei Inhalt
/etc/navidrome/navidrome.toml eigene Einstellungen (alle Optionen: Konfiguration), iac ändert sie nie
/etc/navidrome/iac.env gehört iac: Adresse 0.0.0.0, Port 4533, DataFolder, Startpasswort – gewinnt gegen die toml

Navidrome sendet standardmäßig anonyme Nutzungsstatistiken (Insights); abschalten mit EnableInsightsCollector = false in der toml.

Wo was liegt

Pfad Inhalt
/var/lib/navidrome Datenbank navidrome.db, Cache (Cover, Transcoding), Plugins
/opt/navidrome/music Standard-Musikordner
/usr/bin/navidrome Programm aus dem Paket navidrome

Der Dienst navidrome läuft als Benutzer navidrome mit systemd-Härtung und darf nur /var/lib/navidrome beschreiben. ffmpeg für das Transcoding ist dabei.

Herkunft und Update

iac lädt das .deb des GitHub-Releases und prüft es gegen navidrome_checksums.txt des Releases.

update

update installiert das neueste Release derselben Major-Version ("major_lock": true, derzeit 0.x) per apt; Navidrome migriert die Datenbank beim Start selbst. Eine neue Major-Version wird nur angezeigt.

Bestehende Installation übernehmen

Installationen des Proxmox-VE-Community-Scripts (ct/navidrome.sh) übernimmt adopt.sh im bestehenden Gast – Daten, Benutzer und Musik bleiben, wo sie sind. Ablauf und andere Wege: docs/MIGRATION.md.

bash -c "$(curl -fsSL https://iac.heyer.systems/navidrome/adopt.sh)"

Selbsttest (im Gast)

bash /var/lib/iac/src/core/bin/iac-smoke