Quickly Set Up Nginx Proxy Manager with Docker and Enable HTTPS

This guide walks you through installing Nginx Proxy Manager via Docker, configuring reverse proxy hosts, obtaining Let’s Encrypt SSL certificates, and securing access with HTTPS, all using a user‑friendly web interface suitable for beginners.

macrozheng
macrozheng
macrozheng
Quickly Set Up Nginx Proxy Manager with Docker and Enable HTTPS

This article introduces Nginx Proxy Manager, a visual management interface for Nginx that lets users— even beginners—create reverse proxy hosts, obtain trusted SSL certificates, and manage multiple proxies through a clean web UI.

Features

Beautiful, secure UI built on Tabler

Create forwarding domains, redirects, streams, and 404 hosts without deep Nginx knowledge

Free SSL via Let’s Encrypt or custom certificates

Access lists and basic HTTP authentication for hosts

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/letsencrypt

3. Run

docker-compose up -d

# If using docker-compose-plugin
docker compose up -d

4. Access the web UI

After the containers start, open http://127.0.0.1:81 to see the interface.

5. Log in

The default credentials are:

Username: [email protected]
Password: changeme

On first login you will be prompted to change the password.

6. Main dashboard after login

Practical Example: Reverse‑Proxy the Admin Interface

We will 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 a.test.com resolves to the server’s IP

Reverse‑Proxy Configuration

Access the manager at ip:81, log in, and click the green Add Proxy Host button. In the Details dialog fill in:

Domain Names : a.test.com

Forward Hostname / IP : (see explanation below)

Forward Port : 81

Block Common Exploits : enable

Other fields can be left at defaults

Forward Hostname / IP explanation : If the target service runs on a different machine, use its reachable IP. If it runs on the same host, use the IP of the Docker bridge interface obtained with ip addr show docker0. Do not use 127.0.0.1 because the container and host are on separate networks.

After saving, you can reach the admin UI via a.test.com (still HTTP). The next steps secure it with HTTPS.

3. Obtain an SSL Certificate

In the manager, go to Access Lists → Add SSL Certificate → Let’s Encrypt and request a certificate for a.test.com.

4. Enable HTTPS

Edit the previously created proxy host, select the SSL certificate, and check Force SSL to enforce HTTPS.

Conclusion

This tutorial covered installing Nginx Proxy Manager with Docker, creating a reverse‑proxy for the admin interface, obtaining a Let’s Encrypt certificate, and enforcing HTTPS. For more details, refer to the official documentation.

Official docs: https://nginxproxymanager.com/guide/
Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

DockerSSLWeb UInginx-proxy-manager
macrozheng
Written by

macrozheng

Dedicated to Java tech sharing and dissecting top open-source projects. Topics include Spring Boot, Spring Cloud, Docker, Kubernetes and more. Author’s GitHub project “mall” has 50K+ stars.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.