NaplóindexDockup / terepjegyzet
Note / self-host-navidrome

A Navidrome saját üzemeltetése 2026-ban: zenei mountok, scannelés és Subsonic-alkalmazások

Gyakorlati útmutató a Navidrome saját üzemeltetéséhez Dockerrel, portokkal, perzisztens adatokkal, TLS-sel, biztonsággal, biztonsági mentésekkel és a production használatot akadályozó hibák kezelésével 2026-ban.

Ha már megpróbáltad saját magad üzemeltetni a Navidrome-ot, valószínűleg ismerős ez a frusztráló helyzet: a felület megjelenik, de a scannelés nem talál fájlokat, mert a host zenei elérési útja hibásan van mountolva. A konténer újralétrehozása ritkán oldja meg az URL-ek, az állapot és a függőségek közötti eltéréseket.

Ez az útmutató egy konkrét készültségi feltételt használ: egy csak olvasható zenei könyvtár scannelése, a metaadatok és a borítók ellenőrzése, egy zeneszám streamelése Subsonic-kliensen keresztül, valamint egy lejátszási lista mentése. Minden konfigurációs döntést ehhez a feltételhez mérünk, nem pedig ahhoz, hogy a konténer állapota zöldnek látszik-e.

Mentsd azokat az állapotokat, amelyeket a Navidrome nem tud újra létrehozni

Határozd meg a Navidrome helyreállítási pontját és helyreállítási idejét a Navidrome adatbázisa, a borítóképek cache-e, a lejátszási listák és az eredeti zenei könyvtár alapján. A bootstrap előtt mountold a /data elérési utat, írj bele ártalmatlan mintaadatokat, majd cseréld le a konténert annak bizonyítására, hogy az elérési út valóban perzisztens. A névvel ellátott volume megoldja a redeploy utáni perzisztenciát, de nem védelmet biztosít egy kompromittálódott rendszer vagy a szerver elvesztése ellen.

Állíts össze egy tiszta restore-környezetet, használd ugyanazt a rögzített alkalmazásverziót, és bizonyítsd, hogy a felhasználók, a lejátszási listák, a lejátszási előzmények és a metaadatok visszaállnak, valamint ugyanaz a Subsonic-kliens le tud játszani egy ismert zeneszámot. Rögzítsd a parancsokat, a tulajdonjogok javítását és az eltelt időt. A biztonsági mentésekről szóló útmutató hasznos mérce: egy mentés akkor tekinthető megbízhatónak, ha visszaállítottad, nem pedig akkor, amikor feltöltötted.

Indítsd el a Navidrome-ot anélkül, hogy elrejtenéd a fontos részleteket

A konténert cserélhető runtime-ként kezeld, ne az igazság forrásaként.

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

A kiexponálás előtt ellenőrizd a helyi követelményt: csak olvasható zenei könyvtár-mount és írható alkalmazásadatok szükségesek. A kiexponálás előtt vizsgáld meg a konténer felhasználóját, az írható elérési utakat és a bindolt listenert. Futtasd végig a teljes műveletet — egy csak olvasható zenei könyvtár scannelését, a metaadatok és a borítók ellenőrzését, egy zeneszám streamelését Subsonic-kliensen keresztül, valamint egy lejátszási lista mentését —, és mentsd el a pontos image-referenciát, amely az eredményt produkálta.

Válaszd a Navidrome legkisebb működő topológiáját

Kezdd a Navidrome network namespace-ével: a webes listenere a 4533-as port, nem pedig egy laptopos útmutatóból átmásolt host port. A helyi runtime-követelmény egy csak olvasható zenei könyvtár-mount és az írható alkalmazásadatok. Rögzítsd ezt az image és a port mellett, hogy egy cserehost ugyanazt a helyi képességet kapja.

Miután a követelmény teljesült, futtasd végig a teljes forgatókönyvet — egy csak olvasható zenei könyvtár scannelését, a metaadatok és a borítók ellenőrzését, egy zeneszám streamelését Subsonic-kliensen keresztül, valamint egy lejátszási lista mentését. Rögzítsd a könyvtár scannelési idejére, a transcoding CPU-használatára, a borítóképek cache-ére, az egyidejű streamekre és a lemezátviteli sebességre vonatkozó logokat és méréseket. Ez a bizonyíték lesz az első ismert módon működő architektúra alapja, és tesztelhetővé teszi a későbbi költöztetéseket a Dockup compute és egy csatolt szerver között.

A TLS egyszerű; a generált URL-ek már nem azok

Állítsd be az ND_BASEURL értékét, ha alútvonalról szolgálod ki a Navidrome-ot; egyébként inkább dedikált HTTPS-hostot használj. A kiválasztott hostname-et továbbítsd a konténer 4533-as portjára, add tovább az eredeti hostot és a HTTPS-sémát, és kerüld egy második közvetlen origin publikálását.

Teszteld a Navidrome-ot egy tiszta, külső kliensből. Válaszd külön az ingress hibáit az ismert alkalmazási határproblémától: a scannelés nem talál fájlokat, mert a host zenei elérési útja hibásan van mountolva. A certificate-, DNS- vagy 502-es hiba a routinghoz tartozik; az a kérés pedig, amely eléri a Navidrome-ot, majd később hibázik, az alkalmazás állapotához, kapacitásához vagy valamelyik támogató követelményhez kapcsolódik. Az egyéni domainhez használható TLS-útmutató az első csoporttal foglalkozik.

Öt ellenőrzés, amely erősebb a konténer health állapotánál

Mielőtt valódi felhasználók érkeznek, készíts release-ellenőrzőlapot a Navidrome-hoz. Nevezze meg a rögzített image-et, a 4533-as portot, a kanonikus origint, a perzisztens elérési utakat, valamint a csak olvasható zenei könyvtár-mount és az írható alkalmazásadatok felelősét. Csatold a tranzakció várt eredményét: egy csak olvasható zenei könyvtár scannelését, a metaadatok és a borítók ellenőrzését, egy zeneszám streamelését Subsonic-kliensen keresztül, valamint egy lejátszási lista mentését.

Használd az ellenőrzőlapot egy normál csere és egy tiszta restore után is. A helyreállítás csak akkor fogadható el, ha a felhasználók, a lejátszási listák, a lejátszási előzmények és a metaadatok visszatérnek, és ugyanaz a Subsonic-kliens lejátszik egy ismert zeneszámot. Gyűjts rövid erőforrás-trace-t is, amely lefedi a könyvtár scannelési idejét, a transcoding CPU-használatát, a borítóképek cache-ét, az egyidejű streameket és a lemezátviteli sebességet; tartsd ezt a release mellett, hogy a későbbi kapacitásváltozásokat ugyanazzal a workloaddal lehessen összehasonlítani.

Tartalmazzon egy kontrollált hibát is: küldj ártalmatlan inputot a határhoz kapcsolódó erőforrás- vagy formátumlimit közelében: a scannelés nem talál fájlokat, mert a host zenei elérési útja hibásan van mountolva. Ellenőrizd, hogy a Navidrome a megfelelő határon jelzi a problémát, állítsd vissza az érvényes állapotot, majd futtasd újra a tranzakciót. Ez nem pusztán a sikert, hanem a hibák láthatóságát is ellenőrzi, és megakadályozza, hogy egy egészségesnek tűnő felület elrejtsen egy hibás workert, callbacket vagy adatbázis-kapcsolatot.

Olyan logokat használj, amelyek megválaszolják a következő kérdést

Minden deployment után használd a csak olvasható zenei könyvtár scannelését, a metaadatok és a borítók ellenőrzését, egy zeneszám streamelését Subsonic-kliensen keresztül, valamint egy lejátszási lista mentését Navidrome smoke testként. A hozzá tartozó mérőszámok a könyvtár scannelési ideje, a transcoding CPU-használata, a borítóképek cache-e, az egyidejű streamek és a lemezátviteli sebesség; ott állíts be riasztást, ahol ezek az erőforrások megközelítik azt a pontot, amely rontja a felhasználói műveletet.

A legnagyobb változtatási kockázatot az jelenti, hogy a Navidrome adatbázis-migrációit és a scanner működését úgy kell tesztelni, hogy az eredeti zenei fájlok érintetlenek maradjanak. A biztonságos release visszaállítható snapshotból indul, és a forgalom átterelése előtt validál minden egyirányú állapotváltozást. Amikor a scannelés nem talál fájlokat, mert a host zenei elérési útja hibásan van mountolva, tartsd meg elég ideig a hibás konténert ahhoz, hogy kiolvasd a konfigurációját és az első hibaüzenetet.

Ne add oda a Navidrome-nak az egész hostot

Zárd le a bootstrap ablakát, amint létrejött az első megbízható adminisztrátor. A Navidrome konkrét buktatója, hogy indokolatlanul írhatóként mountolod a zenei könyvtárat; a biztonságosabb határ az, hogy a zenét csak olvashatóként mountold, védd a fiókokat, és csak a streaming szolgáltatást tedd elérhetővé, ne a host teljes könyvtárát.

Az ND_BASEURL konfiguráció, nem secret; az értékét tartsd explicit módon megadva, miközben védd a Navidrome által használt külön hitelesítő adatokat. A privát hálózat kezelje a függőségekhez tartozó hitelesítő adatokat, a Navidrome-on belüli role-ok pedig a legkisebb hasznos műveletet engedélyezzék. Az érzékeny request body-kat és a provider-válaszokat ne írd bele a normál logokba.

Tartsd explicit módon konfigurálva a Navidrome-ot, miközben a Dockup kezeli a routingot

A routing, a certificate-ek, a service-ek cseréje és a csatolt storage ésszerű automatizálási célpontok. A Dockup ezeket kezeli a Navidrome-hoz, és képes a kapcsolódó managed adatbázis provisionálására, illetve az ügyfél saját szerverén futó szolgáltatásokhoz való csatlakozásra.

Amit nem szabad kitalálnia, az a Navidrome trust policy-je. A deployment után állítsd be az ND_BASEURL értékét, ha alútvonalról szolgálod ki a Navidrome-ot; egyébként inkább dedikált HTTPS-hostot használj, érvényesítsd ezt a határt — mountold a zenét csak olvashatóként, védd a fiókokat, és csak a streaming szolgáltatást tedd elérhetővé, ne a host teljes könyvtárát —, majd ellenőrizd ennek a forgatókönyvnek az eredményét: egy csak olvasható zenei könyvtár scannelése, a metaadatok és a borítók ellenőrzése, egy zeneszám streamelése Subsonic-kliensen keresztül, valamint egy lejátszási lista mentése. Az eredmény egy kattintással telepíthető infrastruktúra, alkalmazásspecifikus acceptance testtel.

Gyakran ismételt kérdések

Mire van szüksége a Navidrome-nak egy production deploymenthez?

A Navidrome konténerét egyetlen HTTPS-originen keresztül route-old a 4533-as portjára. A helyi runtime-követelmény egy csak olvasható zenei könyvtár-mount és az írható alkalmazásadatok. Ne tekintsd késznek a Navidrome-ot addig, amíg nem tudsz egy csak olvasható zenei könyvtárat scannelni, ellenőrizni a metaadatokat és a borítókat, streamelni egy zeneszámot Subsonic-kliensen keresztül, valamint menteni egy lejátszási listát.

Mely Navidrome-adatoknak kell szerepelniük a biztonsági mentésben?

Tedd perzisztensté a /data elérési utat, és ugyanabban a recovery manifestben szerepeljen a Navidrome adatbázisa, a borítóképek cache-e, a lejátszási listák és az eredeti zenei könyvtár. A tiszta Navidrome-restore csak akkor sikeres, ha a felhasználók, a lejátszási listák, a lejátszási előzmények és a metaadatok visszatérnek, és ugyanaz a Subsonic-kliens le tud játszani egy ismert zeneszámot.

Szüksége van a Navidrome-nak HTTPS-re reverse proxy mögött?

A nyilvános Navidrome-originhez használj HTTPS-t, a 4533-as portot pedig tartsd meg a belső útvonalon. A Navidrome-beállítást megfelelően alkalmazd: állítsd be az ND_BASEURL értékét, ha alútvonalról szolgálod ki; egyébként inkább dedikált HTTPS-hostot használj. A Navidrome esetében a HTTPS átvitel közben védi a hitelesítő adatokat vagy a felhasználói tartalmakat, és konzisztenssé teszi az originérzékeny kliensviselkedést.

Hogyan kell tesztelni egy Navidrome-frissítést?

Állítsd vissza a jelenlegi Navidrome-állapotot egy izolált deploymentbe, alkalmazd a jelölt verziót, majd futtasd le újra az acceptance tranzakciót. Különösen figyelj arra, hogy a Navidrome adatbázis-migrációit és a scanner működését úgy kell tesztelni, hogy az eredeti zenei fájlok érintetlenek maradjanak. Tartsd meg az előző Navidrome image-et addig, amíg nem érted annak adat-migrációs és rollback-határát.