Nginx Proxy Manager (NPM)
What is it?
A web UI for Nginx reverse proxying with built-in SSL (Let’s Encrypt), access lists, and simple host routing. One container, no external DB (uses SQLite in /data
).
Why I use it
- Point-and-click reverse proxy with SSL for homelab apps
- Quick HTTP→service mapping + automatic certificates
- Easier than hand-editing Nginx for small setups
Default loginadmin@example.com
/ changeme (or admin)
→ change immediately after first login.
Deploy with Portainer (Web editor)
Stacks → Add stack → Web editor → paste → Deploy.
Links
- Project homepage & quick setup: https://nginxproxymanager.com/guide/#quick-setup
- Docker Hub:
jc21/nginx-proxy-manager
- GitHub: https://github.com/NginxProxyManager/nginx-proxy-manager
services:
nginx-proxy-manager:
container_name: npm
image: jc21/nginx-proxy-manager:latest
ports:
- "80:80"
- "443:443"
- "81:81" # Web UI for NPM
environment:
TZ: "Europe/London"
volumes:
- /opt/homelab/data/npm/data:/data
- /opt/homelab/data/npm/letsencrypt:/etc/letsencrypt
restart: unless-stopped
dns:
- 1.1.1.1
- 8.8.8.8
networks:
- homelab
networks:
homelab:
external: true
YAML