

If you have a domain name setup, I’d recommend using Swag as your gateway. It’s a hardened nginx with lots of preconfigured samples that make it feel very plug and play. I got SSL with Let’s Encrypt set up in minutes. My next task is adding SSO to my setup.
If you’re using docker to run your apps, use a network with only swag on it that can connect via port 80 and 443, and put your other apps on a separate network that isn’t public, swag also there and let it do its proxy thing. Run docker rootless, each container with a separate user, secrets fully secured, all that good stuff.
From a cursory look, as I don’t know NPM, Swag doesn’t require a database itself as all config is file based, and doesn’t have any user management. Both seem to be nginx based with Fail2Ban installed, there’s probably some other differences.
What I like about Swag is that with my config checked into a git repo and an act runner set up, I can reconfigure swag on the fly, with a rollback, as it’s just a case of pushing an update to the repo and letting the runner pull changes and restart the container. It works very well for how I want things set up.