Nginx Proxy Manager: Reverse Proxy With a Web UI
Last updated on

Nginx Proxy Manager: Reverse Proxy With a Web UI

Nginx Proxy Manager puts a web interface on nginx, so routing hostnames to your services and issuing certificates becomes form-filling rather than config editing.

Why it is so widely used

Every homelab hits the same wall: a dozen services on a dozen ports, no HTTPS, and a firewall full of holes. The fix is a reverse proxy, and the barrier is that nginx configuration is unfamiliar territory for many people. NPM removes the barrier entirely: add a proxy host, type the internal address and port, tick the SSL box, and it requests and renews a Let’s Encrypt certificate for you.

What it handles

Proxy hosts with WebSocket support, automatic certificate issuance and renewal including DNS challenges for wildcards, redirection hosts, custom nginx snippets when you need something it does not expose, access lists for basic authentication, and streams for raw TCP and UDP forwarding.

Where the abstraction leaks

Because it is nginx underneath, unusual requirements eventually need custom configuration blocks, and knowing a little nginx becomes useful. Applications with awkward header or buffering needs, large file uploads, and some streaming setups are the usual cases.

Security notes

The admin interface should not be exposed publicly, and the default credentials must be changed immediately on first login. Publishing ports 80 and 443 while keeping backends bound to localhost or an internal Docker network is the arrangement you want; our reverse proxy guide covers why.

Alternatives

Caddy achieves the same result with a two-line config file and automatic HTTPS, no UI required. Traefik configures itself from Docker labels. Pangolin and GoProxy are newer entrants.

License

Nginx Proxy Manager is released under the MIT License.