Nginx Proxy Manager
Nginx Proxy Manager (NPM) is a web-based interface for managing reverse proxies using Nginx. It allows you to define domains, route traffic to internal services, and manage SSL certificates without editing configuration files manually. It is well suited for homelabs and small self-hosted environments.
Personal Experience
In practice, Nginx Proxy Manager has proven to be extremely reliable. It has been running for a long time on a small but solid Orbsmart mini PC, without requiring attention. The system was set up once and has been operating smoothly ever since. It updates itself automatically, restarts weekly, and creates regular backups via Restic and rclone (WebDAV) to a NAS. This setup has shown that even modest hardware is sufficient for a stable and low-maintenance reverse proxy solution.
Features
- Web interface for reverse proxy configuration
- Automatic Let’s Encrypt SSL certificates
- HTTP → HTTPS redirection
- Basic access control
- Multiple domains and hosts
- TCP/UDP forwarding
- Certificate management
Installation with Docker
Requirements:
- Linux system or VM
- Docker and Docker Compose installed
- Ports 80, 443 and 81 available
Folder setup:
mkdir -p /opt/nginx-proxy-manager/data
mkdir -p /opt/nginx-proxy-manager/letsencrypt
cd /opt/nginx-proxy-manager
Create docker-compose.yml:
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
container_name: npm
restart: always
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Start:
docker compose up -d
Web interface:
http://<server-ip>:81
First Login
Default credentials:
Email: admin@example.com Password: changeme
You will be asked to set a new email and password.
Add a Proxy Host
- Open the web interface
- Go to “Proxy Hosts”
- Add a new host
- Enter domain, target IP and port
- Enable WebSockets if needed
- Save
SSL Certificates
- Edit the proxy host
- Select SSL
- Request a Let’s Encrypt certificate
- Enable Force SSL and HTTP/2
Certificates renew automatically.
Updating
cd /opt/nginx-proxy-manager
docker compose pull
docker compose up -d
Backup
Back up the following folders:
/opt/nginx-proxy-manager/data/opt/nginx-proxy-manager/letsencrypt
These contain configuration and certificates.
Common Issues
Port conflicts: ports 80 and 443 must be free Let’s Encrypt errors: DNS not pointing to server or ports not forwarded Admin UI unreachable: firewall or container not running