Så self-hostar du Navidrome 2026: musikmonteringar, skanningar och Subsonic-appar
En praktisk guide till att self-hosta Navidrome med Docker, portar, beständig data, TLS, säkerhet, säkerhetskopiering och de problem som hindrar produktion. För 2026.
Om du redan har försökt self-hosta Navidrome känner du förmodligen igen det frustrerande läget: gränssnittet visas, men skanningarna hittar inga filer eftersom musikens sökväg på värden har monterats fel. Att återskapa containern löser sällan en konflikt mellan URL:er, tillstånd och beroenden.
Den här genomgången använder ett konkret mål för att räknas som klar — skanna ett skrivskyddat musikbibliotek, verifiera metadata och omslagsbilder, streama ett spår genom en Subsonic-klient och spara en spellista. Varje konfigurationsval utvärderas mot det målet, inte mot en grön containerstatus.
Säkerhetskopiera det Navidrome inte kan återskapa
Definiera återställningspunkt och återställningstid för Navidrome utifrån Navidromes databas, cache för omslagsbilder, spellistor och det ursprungliga musikbiblioteket. Montera /data före bootstrap, skriv ofarliga exempeldata och ersätt containern för att bevisa att sökvägen faktiskt är beständig. En namngiven volym löser beständighet vid redeploy; den löser inte en kompromettering eller förlust av servern.
Bygg en ren återställningsmiljö, använd samma låsta applikationsversion och bevisa att användare, spellistor, uppspelningshistorik och metadata återkommer och att samma Subsonic-klient kan streama ett känt spår. Dokumentera kommandon, ägarskapskorrigeringar och förfluten tid. Guiden för säkerhetskopiering är en användbar standard: en säkerhetskopia är tillförlitlig efter återställning, inte efter uppladdning.
Starta Navidrome utan att dölja de rörliga delarna
Använd containern som en utbytbar runtime, inte som platsen där sanningen finns.
docker run -d \
--name navidrome \
--restart unless-stopped \
-p 127.0.0.1:4533:4533 \
-v navidrome-data:/data \
-v /srv/music:/music:ro \
-e ND_BASEURL=/ \
deluan/navidrome:latest
Bekräfta det lokala kravet innan exponering: en skrivskyddad montering av musikbiblioteket samt skrivbar applikationsdata. Kontrollera containeranvändaren, skrivbara sökvägar och den bundna lyssnaren innan du exponerar tjänsten. Kör hela flödet — skanna ett skrivskyddat musikbibliotek, verifiera metadata och omslagsbilder, streama ett spår genom en Subsonic-klient och spara en spellista — och spara den exakta image-referens som gav resultatet.
Välj den minsta fungerande Navidrome-topologin
Börja med Navidromes network namespace: dess webblyssnare använder port 4533, inte en host-port som kopierats från en laptopguide. Det lokala runtimekravet är en skrivskyddad montering av musikbiblioteket samt skrivbar applikationsdata. Dokumentera det bredvid image och port så att en ersättningsvärd får samma lokala kapacitet.
När kravet är uppfyllt kör du hela scenariot — skanna ett skrivskyddat musikbibliotek, verifiera metadata och omslagsbilder, streama ett spår genom en Subsonic-klient och spara en spellista. Dokumentera loggar och mätvärden för skanningstid för biblioteket, CPU-användning vid transcoding, cache för omslagsbilder, samtidiga streams och diskgenomströmning. Dessa data blir den första bekräftat fungerande arkitekturen och gör senare flyttar mellan Dockup compute och en ansluten server testbara.
TLS är enkelt – genererade URL:er är det inte
Sätt ND_BASEURL när tjänsten körs från en subpath; annars är det bättre att använda en dedikerad HTTPS-host. Skicka den valda hostname till containerport 4533, vidarebefordra den ursprungliga hosten och HTTPS-schemat och undvik att publicera en andra direkt origin.
Testa Navidrome från en ren extern klient. Separera fel i ingressen från den kända applikationsgränsen — skanningarna hittar inga filer eftersom musikens sökväg på värden har monterats fel. Ett certifikat-, DNS- eller 502-fel hör till routingen; en request som når Navidrome men fallerar senare hör till applikationens tillstånd, kapacitet eller stödkrav. Guiden för TLS med en custom domain täcker den första gruppen.
Fem kontroller som är starkare än container health
Skapa ett release-worksheet för Navidrome innan riktiga användare ansluter. Det måste ange den låsta imagen, port 4533, den kanoniska origin, beständiga sökvägar och ägaren för en skrivskyddad montering av musikbiblioteket samt skrivbar applikationsdata. Bifoga det förväntade resultatet av denna transaktion: skanna ett skrivskyddat musikbibliotek, verifiera metadata och omslagsbilder, streama ett spår genom en Subsonic-klient och spara en spellista.
Använd worksheeten efter ett normalt byte och efter en ren återställning. Återställningen godkänns endast om användare, spellistor, uppspelningshistorik och metadata återkommer och samma Subsonic-klient kan streama ett känt spår. Samla också in en kort resursmätning som täcker skanningstid för biblioteket, CPU-användning vid transcoding, cache för omslagsbilder, samtidiga streams och diskgenomströmning. Spara den bredvid releasen så att framtida kapacitetsförändringar jämförs med samma workload.
Inkludera ett kontrollerat fel: skicka ofarlig indata nära den resurs- eller formatgräns som hör till denna gräns: skanningarna hittar inga filer eftersom musikens sökväg på värden har monterats fel. Bekräfta att Navidrome rapporterar problemet vid rätt gräns, återställ det giltiga tillståndet och kör transaktionen igen. Det här kontrollerar felens synlighet, inte bara framgång, och hindrar ett gränssnitt som ser friskt ut från att dölja en trasig worker, callback eller databasanslutning.
Loggar som besvarar nästa fråga
Använd skanning av ett skrivskyddat musikbibliotek, verifiering av metadata och omslagsbilder, streaming av ett spår genom en Subsonic-klient och sparande av en spellista som Navidromes smoke test efter varje deployment. Tillhörande mätvärden är skanningstid för biblioteket, CPU-användning vid transcoding, cache för omslagsbilder, samtidiga streams och diskgenomströmning. Lägg larmgränsen där resurserna närmar sig en nivå som försämrar användaråtgärden.
Den största förändringsrisken är att Navidromes databas-migreringar och scannerbeteende bör testas medan de ursprungliga musikfilerna förblir orörda. En säker release börjar med en återställningsbar snapshot och validerar alla envägsförändringar i tillståndet innan trafik flyttas. När skanningarna hittar inga filer eftersom musikens sökväg på värden har monterats fel, behåller du den felande containern tillräckligt länge för att läsa dess konfiguration och första fel.
Ge inte Navidrome hela värden
Stäng bootstrap-fönstret så snart den första betrodda administratören finns. Navidromes konkreta fallgrop är att montera musikbiblioteket med skrivbehörighet utan anledning. Den säkrare gränsen är att montera musiken skrivskyddad, skydda kontona och endast exponera streamingtjänsten, inte värdens bibliotek.
ND_BASEURL är konfiguration, inte en hemlighet. Håll värdet explicit och skydda samtidigt de separata inloggningsuppgifter som Navidrome använder. Privat nätverk bör transportera credentials till beroenden, och rollerna i Navidrome bör ge minsta användbara behörighet. Se till att känsliga request bodies och provider-svar inte hamnar i rutinloggar.
Håll Navidrome explicit medan Dockup hanterar routingen
Routing, certifikat, byte av tjänster och ansluten lagring är rimliga mål för automation. Dockup hanterar detta för Navidrome och kan provisionera den tillhörande managed databasen eller ansluta till tjänster på kundens egen server.
Det som Dockup inte bör hitta på är Navidromes trust policy. Efter deployment sätter du ND_BASEURL när tjänsten körs från en subpath; annars är det bättre att använda en dedikerad HTTPS-host. Tillämpa denna gräns — montera musiken skrivskyddad, skydda kontona och exponera endast streamingtjänsten, inte värdens bibliotek — och verifiera resultatet av detta scenario: skanna ett skrivskyddat musikbibliotek, verifiera metadata och omslagsbilder, streama ett spår genom en Subsonic-klient och spara en spellista. Resultatet är one-click-infrastruktur med ett applikationsspecifikt acceptanstest.
Vanliga frågor
Vad behöver Navidrome för en produktionsdeployment?
Routa Navidrome-containern på port 4533 via en enda HTTPS-origin. Det lokala runtimekravet är en skrivskyddad montering av musikbiblioteket samt skrivbar applikationsdata. Kalla inte Navidrome redo förrän du kan skanna ett skrivskyddat musikbibliotek, verifiera metadata och omslagsbilder, streama ett spår genom en Subsonic-klient och spara en spellista.
Vilka Navidrome-data ska ingå i en säkerhetskopia?
Gör /data beständig och inkludera Navidromes databas, cache för omslagsbilder, spellistor och det ursprungliga musikbiblioteket i samma återställningsmanifest. En ren Navidrome-återställning är godkänd först när användare, spellistor, uppspelningshistorik och metadata återkommer och samma Subsonic-klient kan streama ett känt spår.
Kräver Navidrome HTTPS bakom en reverse proxy?
Använd HTTPS för Navidromes publika origin och håll port 4533 på den interna routen. Tillämpa Navidrome-inställningen korrekt: sätt ND_BASEURL när tjänsten körs från en subpath; annars är det bättre att använda en dedikerad HTTPS-host. För Navidrome skyddar HTTPS credentials eller användarinnehåll under transport och säkerställer ett konsekvent klientbeteende som är känsligt för origin.
Hur bör en Navidrome-uppgradering testas?
Återställ det aktuella Navidrome-tillståndet till en isolerad deployment, tillämpa kandidatversionen och upprepa dess acceptanstransaktion. Var särskilt uppmärksam eftersom Navidromes databas-migreringar och scannerbeteende bör testas medan de ursprungliga musikfilerna förblir orörda. Behåll den tidigare Navidrome-imagen tills gränserna för datamigrering och rollback är klarlagda.
