A Verdaccio saját üzemeltetése 2026-ban: npm-hitelesítés, tárhely és TLS
Gyakorlati útmutató a Verdaccio 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ákkal. 2026-ban.
A Verdaccio saját üzemeltetése nem az első docker run parancsnál válik érdekessé, hanem az első újratelepítésnél. Ha az npm-kliensek egy másik hostra küldik a hitelesítési adatokat, vagy a csomagtároló csak olvasható, a Docker ettől még teljesen egészséges folyamatot jelezhet. Az alábbi telepítés a megfigyelhető működés köré épül: jelentkezz be npm-mel, publikálj egy scoped csomagot, telepítsd egy tiszta projektből, majd ellenőrizd, hogy egy upstream csomag gyorsítótárba került.
A Verdaccio feladata egyértelmű: privát npm registry belső csomagokhoz. Ez a meghatározás megmutatja, minek kell nyilvánosnak maradnia, minek kell privátnak lennie, és mit kell egy biztonsági mentésnek helyreállítania.
Portok, folyamatok és privát szolgáltatások
Egy hasznos Verdaccio-diagram bemutatja a nyilvános útvonalat, a privát 4873-as portot, az állapothatárt és minden támogató követelményt. Jelöld, mely nyilak továbbítanak hitelesítési adatokat, és melyek szokásos felhasználói forgalmat. A Verdaccio hálózati szerződését a perzisztens konfiguráció, a htpasswd-tároló és az opcionális object storage alkotja. A privát végpontokat belső DNS-en tartsd, csak a szükséges kimenő kapcsolatokat engedélyezd, és adj a Verdaccionak hatókörhöz kötött szolgáltatási hitelesítő adatot.
A diagramot egy valódi művelettel igazold: jelentkezz be npm-mel, publikálj egy scoped csomagot, telepítsd egy tiszta projektből, majd ellenőrizd, hogy egy upstream csomag gyorsítótárba került. A várható terhelést a tarballok tárolása, a metaadatműveletek, a párhuzamos telepítések és a konfigurált upstream registryk késleltetése okozza; ezt az útvonalat figyeld, ne kezeld egyformán az összes HTTP-kérést.
A helyi parancsból jól vizsgálható szolgáltatás
Olyan parancsot használj, amely minden fontos beállítást láthatóvá tesz. Ez az alapkonfiguráció a Verdacciont a host loopback interfészére köti, hozzáadja az ismert adatcsatolásokat, és megadja az első szükséges beállítást. Egészítsd ki a felülvizsgált kapcsolati beállításokkal a perzisztens konfigurációhoz, a htpasswd-tárolóhoz és az opcionális object storage-hoz; privát szolgáltatásokhoz privát neveket használj.
docker run -d \
--name verdaccio \
--restart unless-stopped \
-p 127.0.0.1:4873:4873 \
-v verdaccio-data:/verdaccio/storage \
-e VERDACCIO_PUBLIC_URL=https://app.example.com \
verdaccio/verdaccio:latest
A lebegő tageket cseréld tesztelt verzióra vagy digestre. Indítás után vizsgáld meg a docker logs --tail 200 verdaccio kimenetét, és erősítsd meg, hogy a folyamat a 4873-as porton figyel. Ezután hajtsd végre a Verdaccio elfogadási műveletét; a gyökéroldal válasza nem bizonyítja a teljes forgatókönyv sikerét: jelentkezz be npm-mel, publikálj egy scoped csomagot, telepítsd egy tiszta projektből, majd ellenőrizd, hogy egy upstream csomag gyorsítótárba került.
A TLS egyszerű; a generált URL-ek már nem
A nyilvános URL-t és az npm registry URL-jét ugyanarra a HTTPS-originre állítsd be. A kiválasztott hostnevet továbbítsd a konténer 4873-as portjára, add tovább az eredeti hostot és a HTTPS-sémát, és ne tegyél közzé egy második közvetlen origint.
A Verdacciót tiszta, külső kliensről teszteld. Válaszd külön a beléptetési hibát és az ismert alkalmazási határt — az npm-kliensek egy másik hostra küldik a hitelesítési adatokat, vagy a csomagtároló csak olvasható. A tanúsítvány-, DNS- vagy 502-es hiba az útválasztáshoz tartozik; az a kérés, amely eléri a Verdacciót, majd később hibázik, az alkalmazás állapotához, kapacitásához vagy egy támogató követelményhez kapcsolódik. A custom-domain TLS guide az első csoporttal foglalkozik.
A Verdaccio helyreállítása üres hoston
A Verdaccio esetében az újratelepítés biztonsága a csomag-tarballokkal, a metaadatokkal, a konfigurációval és a hitelesítési fájlokkal kezdődik. A bootstrap előtt csatold a /verdaccio/storage könyvtárat, írj bele ártalmatlan mintaadatokat, majd cseréld le a konténert annak bizonyítására, hogy az útvonal valóban perzisztens. Az útvonalat úgy teszteld, hogy a konténert akkor cseréled le, amikor még léteznek benne ártalmatlan mintaadatok; így kiderül, ha a mount egy könyvtárszinttel túl magasra vagy túl alacsonyra mutat.
Ezután teszteld a katasztrófa utáni helyreállítást egy üres hoston. Ahol szükséges, használj alkalmazás-konzisztens adatbázis-exportot, és ellenőrizd, hogy a privát tarballok, a metaadatok, a felhasználók és a konfiguráció visszaállnak, valamint a tiszta projekt ugyanazzal a csomintegritással telepíti a csomagot. A restore-tested database backup guide erősebb célt határoz meg annál, mint pusztán ellenőrizni, hogy létrejött-e egy archívumfájl.
Hitelesítő adatok, szerepkörök és kitett felületek
A Verdaccio esetében az értékes támadási felület nem feltétlenül a kezdőoldal. A fő hiba az anonim publikálás engedélyezése vagy írható uplink-konfiguráció használata. Ezt tudatosan előzd meg: tiltsd le az anonim publikálást, korlátozd a maintainer jogosultságokat, és az npm-hitelesítést pontosan a HTTPS registry-hosthoz rendeld.
A VERDACCIO_PUBLIC_URL konfiguráció, nem titkos érték; az értékét tartsd explicit módon megadva, miközben védd a Verdaccio által használt külön hitelesítő adatokat. Használj nem privilegizált konténerfelhasználót, ha az image támogatja, és ne csatolj oda nem tartozó hitelesítő adatokat. Az ingressen alkalmazz sebesség- vagy méretkorlátokat ott, ahol a nem megbízható műveletek felhasználhatják a tarballtárhelyet, a metaadatműveleteket, a párhuzamos telepítéseket és a konfigurált upstream registryk késleltetését.
Hibagyakorlatok a Verdacciohoz
A kapacitásteszteknek a tarballok tárolását, a metaadatműveleteket, a párhuzamos telepítéseket és a konfigurált upstream registryk késleltetését kell terhelniük, nem pedig a / ismételt lekérését. Futtasd a „jelentkezz be npm-mel, publikálj egy scoped csomagot, telepítsd egy tiszta projektből, majd ellenőrizd, hogy egy upstream csomag gyorsítótárba került” forgatókönyvet reális párhuzamosság mellett, és rögzítsd a késleltetést, a hibaarányt, valamint a tárhely növekedését.
A frissítési tervnek számolnia kell ezzel a kockázattal: a konfigurációs szintaxist, a hitelesítési pluginokat és a csomagmetaadatokat a célzott Verdaccio major verzióval kell tesztelni. Teszteld az új kiadást reprezentatív bemenettel, majd ismételd meg az elfogadási tranzakciót, és hasonlítsd össze az eredményét. Ha az npm-kliensek egy másik hostra küldik a hitelesítési adatokat, vagy a csomagtároló csak olvasható, rögzítsd a hibás tranzakciót, és vizsgáld meg az első érintett határt ahelyett, hogy automatikusan az ingresszt tennéd felelőssé.
A Verdaccio-telepítés végponttól végpontig történő igazolása
Ne az első felhasználói forgalmat használd a Verdaccio elfogadási tesztjeként. Készíts elő ártalmatlan mintaállapotot, és futtasd le a teljes műveletet: „jelentkezz be npm-mel, publikálj egy scoped csomagot, telepítsd egy tiszta projektből, majd ellenőrizd, hogy egy upstream csomag gyorsítótárba került”. Jegyezd fel a pontos nyilvános URL-t, az eredményt, az image-referenciát és a futtatáshoz kapcsolódó naplózási időszakot.
Cseréld le a konténert, és ismételd meg a tesztet az adatok újraépítése nélkül. Ezután állítsd helyre egy üres hoston; a helyreállítás feltétele, hogy a privát tarballok, a metaadatok, a felhasználók és a konfiguráció visszatérjenek, a tiszta projekt pedig ugyanazzal a csomintegritással telepítse a csomagot. Minden futtatás során figyeld a tarballtárolást, a metaadatműveleteket, a párhuzamos telepítéseket és a konfigurált upstream registryk késleltetését, és a riasztást a tranzakció romlásához igazítsd, ne az üresjárati konténermetrikákhoz.
Egy utolsó ellenőrzésnek szándékosan hibáznia kell: ideiglenesen vond meg a tesztazonosító hozzáférését a perzisztens konfigurációtól, a htpasswd-tárolótól és az opcionális object storage-tól. Ellenőrizd, hogy a keletkező Verdaccio-üzenet azonosítja-e az érintett határt, ahelyett hogy adattörlést vagy végtelen újraindulást okozna. Állítsd vissza az érvényes állapotot, és erősítsd meg, hogy ugyanaz a minta-tranzakció sikeresen lefut. Ezt a rövid gyakorlatot tartsd meg a kiadási ellenőrzőlistában.
Tartsd explicit módon a Verdacciót, miközben a Dockup kezeli az útválasztást
A Verdaccio esetében a Dockup létrehozhatja az útvonalat és a TLS-tanúsítványt, megőrizheti a mountokat, átadhatja a titkokat, valamint a perzisztens konfigurációt, a htpasswd-tárolót és az opcionális object storage-t privát hálózatra helyezheti, miközben a telepítés Dockupra vagy csatolt szerverekre történik.
A kiadási kapu továbbra is a konkrét Verdaccio-tranzakció: jelentkezz be npm-mel, publikálj egy scoped csomagot, telepítsd egy tiszta projektből, majd ellenőrizd, hogy egy upstream csomag gyorsítótárba került. Ellenőrizd a helyreállítás feltételét is — a privát tarballok, a metaadatok, a felhasználók és a konfiguráció térjenek vissza, a tiszta projekt pedig ugyanazzal a csomintegritással telepítse a csomagot. Ez a két ellenőrzés megmutatja, hogy a telepítés működik-e, és helyreállítható-e.
Gyakran ismételt kérdések
Mire van szüksége a Verdaccionak production telepítéshez?
A Verdaccio konténerét a 4873-as porton, egyetlen HTTPS-origin mögött irányítsd. A hálózati támogató követelmény a perzisztens konfiguráció, a htpasswd-tároló és az opcionális object storage. Ne tekintsd késznek a Verdacciót addig, amíg nem tudsz bejelentkezni npm-mel, nem tudsz publikálni egy scoped csomagot, nem tudod telepíteni egy tiszta projektből, és nem tudod megerősíteni, hogy egy upstream csomag gyorsítótárba került.
Mely Verdaccio-adatoknak kell szerepelniük a biztonsági mentésben?
Tedd perzisztenssé a /verdaccio/storage könyvtárat, és ugyanabba a helyreállítási manifestbe vedd fel a csomag-tarballokat, a metaadatokat, a konfigurációt és a hitelesítési fájlokat. A tiszta Verdaccio-helyreállítás csak akkor sikeres, ha a privát tarballok, a metaadatok, a felhasználók és a konfiguráció visszatérnek, a tiszta projekt pedig ugyanazzal a csomintegritással telepíti a csomagot.
Szüksége van a Verdaccionak HTTPS-re reverse proxy mögött?
A nyilvános Verdaccio-originhez használj HTTPS-t, a 4873-as portot pedig hagyd a belső útvonalon. A Verdaccio beállítását megfelelően alkalmazd: a nyilvános URL-t és az npm registry URL-jét ugyanarra a HTTPS-originre állítsd. A Verdaccio esetében a HTTPS védi a hitelesítő adatokat vagy a felhasználói tartalmakat átvitel közben, és egységesen kezeli az origintől függő kliensviselkedést.
Hogyan kell tesztelni egy Verdaccio-frissítést?
Állítsd helyre a jelenlegi Verdaccio-állapotot egy elkülönített telepítésben, alkalmazd a jelölt verziót, majd ismételd meg az elfogadási tranzakcióját. Fordíts különös figyelmet arra, hogy a konfigurációs szintaxist, a hitelesítési pluginokat és a csomagmetaadatokat a célzott Verdaccio major verzióval kell tesztelni. Tartsd meg az előző Verdaccio-image-et addig, amíg nem tisztázod az adat-migráció és a visszaállítás határát.
