NginX Proxy Manager (https://nginxproxymanager.com/) is a GUI front end to very simply solving the problem of self-hosting more than one service like a website, a discourse server, and a jitsi server all behind a single Internet Service Provider granted IPv4 address. Network address Translation (NAT) works perfectly outbound, but not inbound.
NginX Proxy Manager is a reverse proxy web server packaged in a GUI which allows the definition of multiple services behind a firewall on a LAN. This is accomplished by creating “A” records or “CNAME” records at your Domain Name Provider and then using Nginx Proxy Manager (NPM) to redirect inbound requests to DNS names to a server on your LAN.
NPM also provides the additional functionality of managing “Let’s Encrypted” self signed SSL certificates for your services and also the auto-renewal of those certificates. In its simplest form, NPM installs as a Docker container and internally uses ports 4443, 8080, and 8181 which you offer on your own custom external ports. In my case, I use QNAP Container Station for my NPM and I use the Docker Container (https://hub.docker.com/r/jlesage/nginx-proxy-manager). The port number definitions look like this:
The other important thing is to set up external mounts for /data and /config for NginX to store its non-volitile settings data:
Last, create port forward rules for 80 and 443 on your router to forward to ports 35080 and 35443 pointing the address of your docker host instance.
Once you have the container up and running it is reachable at the address of your Docker host and port 35081 in my example.
A Proxy host entry looks like this.
The idea in this case is someone that contacts https://www.scottibyte.com/ (my website) is routed by NPM to my LAN server at 192.168.80.20. When you create the entry, you have the option of also creating and managing an SSL certificate from “Let’s Encrpyt” also which is why my website is SSL.
NPM is a create way to decrease your threat surface above and beyond solutions that just do port forwarding pinholes to every server.
This topic is dedicated to all things NginX Proxy Manager. Please feel free to ask your questions.