Nginx Proxy Manager — Web UI for Nginx Reverse Proxy
Docker container that gives you a polished web interface on top of Nginx, with automatic Let's Encrypt SSL, access lists, and streams.
What it is
Nginx Proxy Manager (NPM) is a Docker-based application that puts a polished web interface on top of Nginx reverse proxy. Instead of editing nginx.conf files by hand, you create and manage proxy hosts, redirections, streams, and SSL certificates through a browser-based dashboard.
It is designed for self-hosters, homelab enthusiasts, and small teams who run multiple services behind a single public IP and want automatic HTTPS without manual certificate management.
How it saves time or tokens
Manual Nginx configuration for reverse proxying involves writing server blocks, managing certificate renewals with certbot cron jobs, and debugging syntax errors. NPM reduces this to clicking through a form: enter your domain, point it to an internal IP and port, toggle SSL on, and the system handles Let's Encrypt issuance and renewal automatically. Adding a new service takes under a minute.
How to use
- Deploy NPM using Docker Compose with the official image (
jc21/nginx-proxy-manager:latest). Expose ports 80, 443, and 81 (admin UI). - Log in to the admin panel at
http://your-server:81with default credentials (admin@example.com / changeme), then change your password. - Add a proxy host: enter the domain name, set the forward hostname/IP and port, enable SSL with Let's Encrypt, and save.
Example
# docker-compose.yml
version: '3.8'
services:
npm:
image: jc21/nginx-proxy-manager:latest
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Related on TokRepo
- Self-hosted tools — More tools you can run on your own infrastructure
- DevOps automation — Infrastructure and deployment tooling
Common pitfalls
- Port 80 must be reachable from the internet for Let's Encrypt HTTP-01 challenges. If your ISP blocks port 80, use DNS challenge instead via the advanced tab.
- Running NPM behind another reverse proxy creates double-proxy issues. NPM should be the outermost proxy handling SSL termination.
- Default credentials are well-known. Change the admin password immediately after first login to avoid unauthorized access.
Frequently Asked Questions
Yes. NPM supports DNS challenge-based wildcard certificates through its advanced SSL settings. You need to configure a DNS provider plugin (Cloudflare, Route53, etc.) so NPM can create the required TXT records for wildcard validation.
Yes. Point the proxy host to the container name or internal Docker IP and its exposed port. If NPM and your services are on the same Docker network, you can use container names as hostnames directly.
NPM uses Let's Encrypt and automatically renews certificates before they expire. The renewal process runs in the background with no manual intervention required. Certificates are stored in the mounted /etc/letsencrypt volume.
For small-to-medium deployments, yes. It runs production Nginx under the hood and handles SSL correctly. For high-traffic enterprise setups, teams typically manage Nginx configs directly or use dedicated load balancers with more granular control.
Yes. Each proxy host has an 'Advanced' tab where you can inject custom Nginx directives (headers, rate limiting, caching rules) directly into the generated server block.
Citations (3)
- Nginx Proxy Manager GitHub— NPM provides web UI for Nginx reverse proxy with auto SSL
- Let's Encrypt Documentation— Let's Encrypt free SSL certificate issuance and renewal
- Nginx Official Docs— Nginx reverse proxy configuration
Related on TokRepo
Discussion
Related Assets
HumHub — Open-Source Enterprise Social Network
A flexible, open-source social networking platform built on Yii2 for creating private communities, intranets, and collaboration spaces within organizations.
Dolibarr — Open-Source ERP & CRM for Business Management
A modular open-source ERP and CRM application written in PHP for managing contacts, invoices, orders, inventory, accounting, and more from a single web interface.
PrestaShop — Open-Source PHP E-Commerce Platform
A widely adopted open-source e-commerce platform written in PHP with a rich module marketplace, multi-language support, and a strong European user base.