How to Install and Use Nginx Proxy Manager with Docker: A Step-by-Step Guide
This tutorial explains how to set up Nginx Proxy Manager using Docker, covering its key features, Docker‑Compose installation, login credentials, configuring a reverse proxy for a backend interface, obtaining Let’s Encrypt SSL certificates, and enabling HTTPS access.
Today we introduce Nginx Proxy Manager, a visual management interface for Nginx that provides a clean web UI, SSL certificate handling, and advanced proxy configuration.
Features
Beautiful, secure UI built on Tabler
Create forward domains, redirects, streams, and 404 hosts without knowing Nginx
Free SSL via Let’s Encrypt or custom certificates
Access lists and basic HTTP authentication
Advanced Nginx configuration for super‑users
User management, permissions, and audit logs
Installation
1. Install Docker and Docker‑Compose
2. Create a docker-compose.yml file
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/letsencrypt3. Run
docker-compose up -d
# If using docker-compose-plugin
docker compose up -d4. Access the web UI
After the containers start, open http://127.0.0.1:81 to see the interface.
5. Login
Default credentials are:
Account: [email protected]
Password: changemeOn first login you will be prompted to change the password.
6. Main dashboard
(Image of the dashboard omitted for brevity.)
Practical Example: Setting Up a Reverse Proxy for the Admin Interface
We bind http://a.test.com to the admin UI running on port 81 and enable HTTPS.
Prerequisites
Nginx Proxy Manager installed
A domain name
The domain resolves to the server’s IP
Reverse Proxy Configuration
Access the admin UI at ip:81 , log in, click the green "Add Proxy Host" button, and fill in the Details:
Domain Names : a.test.com
Forward Hostname / IP : (see explanation below)
Forward Port : 81
Block Common Exploits : enabled
Forward Hostname / IP explanation : If the target service runs on a different host, use its reachable IP; if on the same host, use the IP obtained from ip addr show docker0 . Do not use 127.0.0.1 because the service runs inside a Docker container.
After saving, you can reach the admin UI via a.test.com (initially over HTTP).
Obtain SSL Certificate
In the Nginx Proxy Manager UI go to Access Lists → Add SSL Certificate → Let's Encrypt and request a certificate for a.test.com .
Enable HTTPS
Edit the proxy host, select the newly created certificate, and enable Force SSL to enforce HTTPS.
Summary
This tutorial covered the full process of installing Nginx Proxy Manager with Docker, logging in, configuring a reverse proxy for a backend interface, and securing it with a Let’s Encrypt certificate. For more details, refer to the official documentation.
Official documentation: https://nginxproxymanager.com/guide/
Java Architect Essentials
Committed to sharing quality articles and tutorials to help Java programmers progress from junior to mid-level to senior architect. We curate high-quality learning resources, interview questions, videos, and projects from across the internet to help you systematically improve your Java architecture skills. Follow and reply '1024' to get Java programming resources. Learn together, grow together.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.