Indeks dnevnikaDockup / bilješka s terena
Note / self-host-verdaccio

Kako samostalno hostati Verdaccio 2026.: npm autentikacija, pohrana i TLS

Praktičan vodič za samostalno hostanje Verdaccia koji obuhvaća Docker, portove, trajne podatke, TLS, sigurnost, sigurnosne kopije i probleme koji onemogućuju produkcijsku upotrebu. U 2026.

Samostalno hostanje Verdaccia postaje zanimljivo pri prvom ponovnom deployu, a ne pri prvom docker run pozivu. Ako npm klijenti šalju autentikaciju drugom hostu ili je pohrana paketa samo za čitanje, Docker i dalje može prijaviti potpuno zdrav proces. Donji deployment organiziran je oko ponašanja koje se može promatrati: prijavite se s npmom, objavite paket sa scopeom, instalirajte ga iz čistog projekta i potvrdite da je upstream paket spremljen u cache.

Namjena Verdaccia je jasna: privatni npm registry za interne pakete. Taj opis govori što mora ostati javno, što treba ostati privatno i što sigurnosna kopija mora moći rekonstruirati.

Portovi, procesi i privatne usluge

Koristan dijagram Verdaccia prikazuje javnu rutu, privatni port 4873, granicu stanja i svaki pomoćni zahtjev. Označite koje strelice prenose vjerodajnice, a koje predstavljaju uobičajeni korisnički promet. Mrežni ugovor za Verdaccio čine trajna konfiguracija, htpasswd pohrana i opcionalna object storage pohrana. Privatne endpointove zadržite na internom DNS-u, dopustite samo potrebne odlazne pozive i Verdacciu dodijelite ograničene servisne vjerodajnice.

Dijagram potvrdite jednom stvarnom radnjom: prijavite se s npmom, objavite paket sa scopeom, instalirajte ga iz čistog projekta i potvrdite da je upstream paket spremljen u cache. Najveće opterećenje vjerojatno će dolaziti od pohrane tarballova, operacija nad metapodacima, istodobnih instalacija i latencije prema konfiguriranim upstream registryjima; nadzirite taj put umjesto da sve HTTP zahtjeve tretirate jednako.

Pretvorite lokalnu naredbu u servis koji se može pregledavati

Upotrijebite naredbu koja izlaže svaki važan odabir. Ova osnovna konfiguracija veže Verdaccio na loopback sučelje hosta, dodaje poznate mountove podataka i postavlja prvu potrebnu vrijednost. Dodajte provjerene postavke povezivanja za trajnu konfiguraciju, htpasswd pohranu i opcionalnu object storage pohranu; za privatne usluge koristite privatna imena.

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

Zamijenite promjenjive tagove testiranom verzijom ili digestom. Nakon pokretanja pregledajte docker logs --tail 200 verdaccio i potvrdite da proces osluškuje port 4873. Zatim izvršite Verdaccio acceptance radnju; odgovor na root stranicu ne može dokazati da cijeli scenarij uspijeva: prijavite se s npmom, objavite paket sa scopeom, instalirajte ga iz čistog projekta i potvrdite da je upstream paket spremljen u cache.

TLS je jednostavan; generirani URL-ovi nisu

Postavite javni URL i npm registry URL na isto HTTPS ishodište. Odabrani hostname usmjerite na port spremnika 4873, proslijedite izvorni host i HTTPS shemu te izbjegavajte objavljivanje drugog izravnog ishodišta.

Testirajte Verdaccio iz čistog vanjskog klijenta. Razdvojite kvar ulazne rute od poznate granice aplikacije — npm klijenti šalju autentikaciju drugom hostu ili je pohrana paketa samo za čitanje. Pogreška certifikata, DNS-a ili 502 pripada routingu; zahtjev koji dođe do Verdaccia i kasnije ne uspije pripada stanju aplikacije, kapacitetu ili pomoćnom zahtjevu. Vodič za TLS s prilagođenom domenom obrađuje prvu skupinu problema.

Vratite Verdaccio na prazan host

Za Verdaccio sigurnost ponovnog deploymenta počinje s tarballovima paketa, metapodacima, konfiguracijom i autentikacijskim datotekama. Montirajte /verdaccio/storage prije bootstrap procesa, zapišite bezopasne ogledne podatke i zamijenite spremnik kako biste dokazali da je taj put doista trajan. Testirajte put tako da zamijenite spremnik dok bezopasni ogledni podaci još postoje; to otkriva mountove usmjerene jedan direktorij previsoko ili prenisko.

Zatim testirajte disaster recovery na praznom hostu. Prema potrebi upotrijebite export baze podataka konzistentan sa stanjem aplikacije i provjerite vraćaju li se privatni tarballovi, metapodaci, korisnici i konfiguracija te instalira li čisti projekt paket s istim integritetom. Vodič za sigurnosne kopije baza podataka provjerene vraćanjem pruža snažniji cilj od pukog provjeravanja je li arhivska datoteka stvorena.

Vjerodajnice, uloge i izložene površine

Za Verdaccio vrijedna površina nije nužno početna stranica. Najčešća je pogreška dopuštanje anonimnog publishanja ili upotreba writable uplink konfiguracije. Suprotstavite joj se namjerno: zabranite anonimno publishanje, ograničite maintainere scopeom i zadržite npm autentikaciju vezanom uz točan HTTPS registry host.

VERDACCIO_PUBLIC_URL je konfiguracija, a ne tajna vrijednost; njegovu vrijednost zadržite eksplicitnom, a zasebne vjerodajnice koje Verdaccio koristi zaštitite. Upotrijebite unprivileged korisnika spremnika kada ga image podržava i nemojte montirati nepovezane vjerodajnice. Ograničenja brzine ili veličine primijenite na ingressu, gdje nepouzdani posao može trošiti pohranu tarballova, operacije nad metapodacima, istodobne instalacije i latenciju prema konfiguriranim upstream registryjima.

Vježbe kvarova za Verdaccio

Testovi kapaciteta trebaju obuhvatiti pohranu tarballova, operacije nad metapodacima, istodobne instalacije i latenciju prema konfiguriranim upstream registryjima, a ne ponovljeni zahtjev prema /. Pokrenite scenarij „prijavite se s npmom, objavite paket sa scopeom, instalirajte ga iz čistog projekta i potvrdite da je upstream paket spremljen u cache” uz realističnu konkurentnost te zabilježite latenciju, stopu pogrešaka i rast pohrane.

Planiranje nadogradnje mora uzeti u obzir ovaj rizik: sintaksu konfiguracije, autentikacijske pluginove i metapodatke paketa treba testirati prema ciljanoj major verziji Verdaccia. Testirajte novo izdanje s reprezentativnim ulazom, zatim ponovite acceptance transakciju i usporedite rezultat. Ako npm klijenti šalju autentikaciju drugom hostu ili je pohrana paketa samo za čitanje, zabilježite neuspjelu transakciju i pregledajte prvu uključenu granicu umjesto da pretpostavite kako je ingress odgovoran.

Dokažite ispravnost Verdaccio deploymenta od početka do kraja

Nemojte promet prvog korisnika pretvoriti u acceptance test za Verdaccio. Pripremite bezopasno ogledno stanje i pokrenite cijelu radnju „prijavite se s npmom, objavite paket sa scopeom, instalirajte ga iz čistog projekta i potvrdite da je upstream paket spremljen u cache”. Zabilježite točan javni URL, rezultat, referencu imagea i interval logova povezan s pokretanjem.

Zamijenite spremnik i ponovite postupak bez ponovne izgradnje podataka. Zatim izvršite oporavak na praznom hostu; uvjet oporavka jest da se vrate privatni tarballovi, metapodaci, korisnici i konfiguracija te da čisti projekt instalira paket s istim integritetom. U svakom prolazu pratite pohranu tarballova, operacije nad metapodacima, istodobne instalacije i latenciju prema konfiguriranim upstream registryjima te definirajte alert oko degradacije transakcije, a ne oko metrika neaktivnog spremnika.

Jedna završna provjera trebala bi namjerno ne uspjeti: privremeno uskratite testnom identitetu pristup trajnoj konfiguraciji, htpasswd pohrani i opcionalnoj object storage pohrani. Provjerite identificira li rezultirajuća poruka Verdaccia relevantnu granicu umjesto da pokrene brisanje podataka ili beskonačno ponovno pokretanje. Vratite valjano stanje i potvrdite da ista ogledna transakcija uspijeva. Ovu kratku vježbu zadržite u release checklisti.

Zadržite eksplicitnu konfiguraciju Verdaccia dok Dockup upravlja routingom

Za Verdaccio Dockup može izraditi rutu i TLS certifikat, sačuvati mountove, isporučiti secrets te postaviti trajnu konfiguraciju, htpasswd pohranu i opcionalnu object storage pohranu na privatnu mrežu tijekom deploymenta na Dockup ili povezane servere.

Release gate i dalje je konkretna Verdaccio transakcija: prijavite se s npmom, objavite paket sa scopeom, instalirajte ga iz čistog projekta i potvrdite da je upstream paket spremljen u cache. Također provjerite uvjet oporavka — vraćaju li se privatni tarballovi, metapodaci, korisnici i konfiguracija te instalira li čisti projekt paket s istim integritetom. Te dvije provjere pokazuju funkcionira li deployment i može li se oporaviti.

Često postavljana pitanja

Što je Verdacciu potrebno za produkcijski deployment?

Usmjerite spremnik Verdaccia na portu 4873 kroz jedno HTTPS ishodište. Mrežni zahtjev koji ga podržava čine trajna konfiguracija, htpasswd pohrana i opcionalna object storage pohrana. Nemojte Verdaccio proglasiti spremnim dok se ne možete prijaviti s npmom, objaviti paket sa scopeom, instalirati ga iz čistog projekta i potvrditi da je upstream paket spremljen u cache.

Koji Verdaccio podaci pripadaju sigurnosnoj kopiji?

Učinite /verdaccio/storage trajnim i uključite tarballove paketa, metapodatke, konfiguraciju i autentikacijske datoteke u isti recovery manifest. Čisti restore Verdaccia uspješan je samo kada se vrate privatni tarballovi, metapodaci, korisnici i konfiguracija te čisti projekt instalira paket s istim integritetom.

Zahtijeva li Verdaccio HTTPS iza reverse proxya?

Za javno Verdaccio ishodište koristite HTTPS, a port 4873 zadržite na internoj ruti. Ispravno primijenite Verdaccio postavku: javni URL i npm registry URL postavite na isto HTTPS ishodište. Za Verdaccio HTTPS štiti vjerodajnice ili korisnički sadržaj tijekom prijenosa te održava dosljedno ponašanje klijenta ovisno o ishodištu.

Kako treba testirati nadogradnju Verdaccia?

Vratite trenutno stanje Verdaccia u izolirani deployment, primijenite kandidatsku verziju i ponovite njegovu acceptance transakciju. Obratite posebnu pozornost jer sintaksu konfiguracije, autentikacijske pluginove i metapodatke paketa treba testirati prema ciljanoj major verziji Verdaccia. Zadržite prethodni Verdaccio image dok ne razumijete granicu migracije podataka i rollbacka.