7. juni 2026

Fra Nginx Proxy Manager til NPMplus: en migrering uden vej tilbage

I årevis har min edge kørt på Nginx Proxy Manager (NPM). Det er en fremragende lille proxy med en pæn UI, men jeg ville have CrowdSec, moderne TLS-defaults og en del andre forbedringer. Det fører naturligt til NPMplus, en forbedret fork af NPM. Migreringen er for det meste smertefri, men der er nogle fælder du skal kende.

Der er ingen vej tilbage

Det vigtigste først: du kan ikke migrere tilbage til den oprindelige NPM bagefter. Tag en fuld backup før du rører ved noget, så du har muligheden for at rulle tilbage hvis det går galt. Jeg snapshotter hele containeren først .. det er fem sekunders arbejde og redder din aften.

Formularerne har ændret adfærd

NPMplus har ændret mange af formularerne, så efter migreringen skal du gennemgå hver eneste proxy host og tjekke at indstillingerne stadig er korrekte. Antag ikke at alt bare flytter med 1:1. Hos mig var de fleste hosts fine, men et par stykker skulle rettes i hånden.

Let’s Encrypt-mountet skal fjernes igen

Det her er den fælde folk hænger fast i. Under migreringen monterer du dit gamle letsencrypt-bibliotek ind, så NPMplus kan importere dine eksisterende certifikater. Men migreringen fortsætter ikke før du fjerner det mount igen. Du får en besked i stil med:

All certbot certs have been copied, please remove the /etc/letsencrypt mountpoint and redeploy to continue the migration!

Certifikaterne er flyttet til /data. Fjern /etc/letsencrypt-mountet, redeploy din compose-fil, og så kører den videre.

Intet admin-password i loggen

Du leder forgæves efter et nyt admin-password i opstartsloggen. Det kommer ikke, fordi dine eksisterende NPM-credentials følger med. Log ind med det gamle brugernavn og kodeord.

Proxy gennem proxy? Skift til https

Hvis du proxyer NPMplus gennem en anden NPM(plus)-instans, så husk at skifte schemet fra http til https. Det er en lille ting, men den giver en bøvlet fejl hvis du overser den.

CrowdSec ser intet uden logs

Vil du have CrowdSec med, så er der to ting der ofte spænder ben:

  • Sæt LOGROTATE=true. Uden den skrives access-logs aldrig til disk, og så har CrowdSec ingenting at analysere.
  • CrowdSec-konfigurationen peger på container-stier (fx /opt/npmplus/nginx/logs), ikke host-stier, selvom dine bind mounts mapper anderledes.

Sidder du bag Cloudflare, så sæt TRUST_CLOUDFLARE=true, ellers ser CrowdSec kun Cloudflares IP’er som kilde til al trafik, og så banlyser den i praksis hele internettet på én gang.

HTTP/3 kræver UDP 443

NPMplus kan HTTP/3, men det kræver at du forwarder UDP 443, ikke kun TCP. Enten åbner du porten i din firewall, eller også slår du funktionen fra. Glemmer du det, virker siderne stadig (de falder bare tilbage til HTTP/2), så det er nemt at overse.

Var det det værd?

Ja. NPMplus er en solid drop-in-erstatning .. den velkendte UI, alle proxy hosts og certifikater migrerede rent, og oveni fik jeg CrowdSec og bedre defaults. Bare husk backuppen, for der er som sagt ingen vej tilbage.

Kilder og videre læsning

Kommentarer