One downside would be since Nginx Proxy Manager gets updated less often you are more likely to be running an out of date and potentially vulnerable version on your server

Because of this and some issues on the repo that where not addressed as much as expected, I stopped using npm and now run nginx with the proxy-confs from Linuxserver.

Makes configuring and changing configuration very easy for any reverse proxy configs.

Has given me the opportunity to learn how to config server blocks in nginx manually.

More replies More replies

I have just finished transferring 60 proxy hosts to another domain through NPM, manually via the GUI. It wouldn't work if I bulk changed the nginx configs themselves, it would just result in server errors on NPM.

If I was using plain nginx, it probably would've taken me a second to do the domain switch with configs alone.

More replies

IMHO, I tried using NPM, but came to not like it.

Why?

  • another login interface, can be minimized by SSO, but still.

  • althrough it is fancy with automatic ssl, once certbot or acme.sh or whatever is set up properly, its also easy done manually.

  • I don't know if it changed recently, but I felt like that it did not expose all of the settings I needed.

  • How often do you really need to change your reverse proxy config that it warrants an interface other than $EDITOR?

  • It's another thing to break. What if it breaks and you need to setup nginx without it? Are you able to?

  • The reverse proxy is the one piece of software that IMO needs to be upgraded soonish if a new version comes out (any other software as well if there are security patches...). Another thing that may delay timely updates - I've already decoupled me from any distro repos by using the official docker image instead of apt install nginx.

More replies

Most people around love NPM, its simple with its webui and it gets work done. But if you are already at the level of having scripts for plain nginx then what exactly is the drive for the change?

If looking for some simplification... I am a strong Caddy reverse proxy supporter.

Its cleaner simpler config compared to plain nginx and also gets things done.

Heres a guide for you to have a look how one might set it up in docker and how its config differs.

It's basically a clicky GUI that configures a lot of nginx settings you would typically have to understand by yourself and craft.

Due to this, a lot if things happen under the hood, which you as end user are unaware of. Furthermore, it tends to not support all configuration features nginx comes with as the GUI only targets the most basic things to set up new proxy hosts really fast.

Also patch management may be a problem, as it is not that actively developed and has really a lot of github issues that are not tasked by the devs.

As soon as you want real controll and configure more advanced stuff, you will find yourself a lot in the advanced section and location area of NPM. You will struggle, read a lot of github issues and finally add 'random' community code into your NPM configuration in the hope that it somehow works.

It's a nice project and I've used it for more then a year. However, I switched to Traefik to gain real controll and never looked back. Configuring SSO and IdP providers is so much easier in Traefik. Also having infrastructure by code via Traefik labels only. Makes it easy to backup and adjust programatically.

One last note: If you have a single proxy host in NPM that is not configured properly or the underlying service is not alive during NPM startup, the whole container will fail and none of your configured proxies will be available. This is a general nginx problem, as all configs must be perfect and valid. In traefik, it doesn't care. You'll have a single error for your individually failing service but everything else is just up and running. Also load balancing is really easy in traefik.

Tldr: NPM is nice for starters that do not have special needs requirements or/and an understanding what nginx is doing and how to properly configure it. As soon as you hit expert level or habe special needs, you will want to switch really fast.

One last note: If you have a single proxy host in NPM that is not configured properly or the underlying service is not alive during NPM startup, the whole container will fail and none of your configured proxies will be available.

Not true. I run NPM for a while, I have always started NPM first before starting my other services. You don't need the underlying services alive before starting NPM. NPM will just return an HTTP 500 for that one service if it's not alive.

More replies

More replies

I use Nginx Proxy Manager on my "experiment" server, where I setup and remove docker container via Portainer quite frequently. It's great to setup docker container quickly with GUI only and without the need to SSH.

For my productive apps, I'm using Caddy, sometimes Nginx + Certbot if it's a more complex configuration that isn't documented as well for Caddy.

You can use Traefik with docker compose labels and then the reverse proxy gets auto configured as the container boots up or shuts down. I’ve never seen a reverse proxy work as well with docker as Traefik

More replies

Thumbnail image: Earn CPE credits 🎓 and level up your skills! Join us April 3 at 11 AM ET for a live hack—build an AI-generated app & uncover real security flaws in AI-assisted code!

For me the biggest downside is that you can't host static websites. I get that it's a focus is on managing reverse proxies, but it's just a gui to edit nginx config files. It shouldnt be difficult to add support for static sites either through editing a html file in the gui or maybe through just giving it the link to a git repo.