How to Set Up Nginx Proxy Manager for Your Home Lab
If you’re running multiple self-hosted services on your home network, keeping track of ports and IP addresses gets messy fast. A proper Nginx Proxy Manager setup solves this by giving every service a clean domain name, automatic HTTPS, and a simple web dashboard to manage it all — no manual Nginx config files required.
What Is Nginx Proxy Manager?
Nginx Proxy Manager (NPM) is a Docker-based application that provides a friendly web interface on top of Nginx’s reverse proxy capabilities. Instead of manually editing server blocks and renewing SSL certificates by hand, NPM lets you add new proxy hosts, request free Let’s Encrypt certificates, and manage redirects entirely through a browser-based dashboard.
Why Homelab Users Love It
- One domain per service – instead of remembering
192.168.1.50:8096for Jellyfin, you can access it atjellyfin.yourdomain.com - Automatic HTTPS – built-in Let’s Encrypt integration means valid SSL certificates with just a few clicks
- Centralized management – all your proxy hosts, redirects, and access lists live in one dashboard
- Access control lists – restrict certain services to specific IP ranges or require basic authentication
Installing Nginx Proxy Manager with Docker Compose
Create a docker-compose.yml file with the following structure:
yaml
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Then start the container:
docker compose up -d
Accessing the Dashboard
Once running, open a browser and navigate to http://your-server-ip:81. The default login credentials are provided in NPM’s documentation and should be changed immediately after your first login for security.
Adding a Proxy Host
- Click Proxy Hosts → Add Proxy Host.
- Enter the domain name you want to use (e.g.,
jellyfin.yourdomain.com). - Set the Scheme, Forward Hostname/IP, and Forward Port to match the internal service you’re proxying.
- Switch to the SSL tab, choose Request a new SSL Certificate, and enable Force SSL.
- Click Save — NPM handles the certificate request and Nginx configuration automatically.
DNS Requirements
For this to work with a real domain, you’ll need either a public domain pointed at your home IP (with port forwarding configured), or a local DNS setup like Pi-hole with custom DNS records if you only want access within your home network without exposing anything publicly.
Final Thoughts
A solid Nginx Proxy Manager setup turns a chaotic list of IP addresses and ports into a clean, professional-feeling homelab with proper domain names and valid HTTPS certificates. It’s one of the highest-impact tools you can add once you’re running more than two or three self-hosted services at home.