Guide · Open source
How to use nginx-proxy-manager: setup, SSL and first proxy host
Updated · written with AI from the project's own documentation and checked against our catalogue data
Nginx Proxy Manager is a web interface, packaged as a Docker image, that forwards domain names to services you host, such as apps on a home server. It can also request free Let's Encrypt SSL certificates so traffic is encrypted. This guide walks through the basic setup and shows how to get a first site working, without editing Nginx config files by hand.
Quick start
- 1Install Docker and Docker Compose. Install Docker following Docker's install guide, which the README links to.
- 2Create docker-compose.yml. Save the minimal compose file from the README, with ports 80, 81 and 443 and the ./data and ./letsencrypt volumes.
- 3Start the stack. Run docker compose up -d in the folder with the compose file.
- 4Open the admin UI. Visit port 81 on the host and log in. Allow time for the container to start.
- 5Forward your router ports. If you need outside access, forward ports 80 and 443 to the server.
- 6Create a proxy host with SSL. Add a domain, point it at a local service, and request a Let's Encrypt certificate.
What you need before you start
Nginx Proxy Manager is documented only as a Docker image, so you need Docker and Docker Compose on the machine that will run it. The README links to Docker's install guide for this step.
- Docker
- Docker Compose
- A machine to host the project, such as a home server
Create the docker-compose.yml file
Create a file named docker-compose.yml with the minimum configuration from the README. It exposes ports 80 and 443 for web traffic and port 81 for the admin interface, and stores data in the ./data and ./letsencrypt folders.
- Ports 80 and 443 handle incoming web traffic
- Port 81 serves the admin interface
- The README says this is the bare minimum configuration; the full documentation covers more options
services:
app:
image: 'docker.io/jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencryptStart the container and log in to the admin UI
Run the stack from the folder that contains docker-compose.yml. Once the container is running, open the admin interface on port 81. The README notes that startup can take a little while because of the entropy of keys.
- Admin interface address: http://127.0.0.1:81 when opened on the same machine
docker compose up -dMake your home services reachable from the internet
If you want to reach services from outside your home network, the README describes the basics. Your router needs port forwarding for ports 80 and 443 to the server running the project. Your domain name also needs to point to your home, either with a static IP or a dynamic DNS service.
- Forward ports 80 and 443 on your router to the server
- Point your domain at your home, using a static IP or a service such as DuckDNS, Amazon Route53 or Cloudflare (the README links helper projects for Route53 and Cloudflare)
Forward a domain to a service and enable SSL
Inside the admin UI you create forwarding hosts that send a domain name to a service on your network. The README says you can request free SSL from Let's Encrypt, or supply your own certificates. Access lists and basic HTTP authentication can also be applied to hosts.
The README does not describe the exact click-by-click steps for creating a host, so check the full setup documentation at nginxproxymanager.com/setup for the current screens.
- Create a proxy host for each domain name
- Enable Let's Encrypt SSL, or upload a custom certificate
- Optionally add an access list or HTTP authentication
Upgrading and armv7 hardware
The README warns that armv7 is no longer supported in version 2.14 and later, because Node.js dropped support for armhf. If your hardware is armv7, the README says to use the 2.13.7 image tag instead.
- armv7 users should pin the 2.13.7 image tag
- Other hardware follows the latest image in the compose file
What people use it for
- Giving a home media or dashboard app a friendly domain name with HTTPS
- Forwarding several internal web apps from one server through a single entry point
- Redirecting one domain to another address, as the features list describes redirections
- Limiting access to a host with access lists or basic HTTP authentication
Frequently asked questions
Is Nginx Proxy Manager free?
The project is released under the MIT licence, as listed on its repository. It includes free SSL certificates from Let's Encrypt. The README does not list any paid tier.
Do I need to know Nginx to use it?
No. The README says the goal is to forward domains without knowing Nginx, and advanced Nginx configuration is available for super users but is optional.
Can I install it without Docker?
The README only documents the Docker image. If you cannot run Docker, the README does not describe another install method.
Does it work on Raspberry Pi or armv7 boards?
Version 2.14 and later no longer support armv7. The README says to use the 2.13.7 image tag on that hardware.
Why can't I reach the admin page on port 81?
The README says startup can take a while. Check that the container is running with docker compose up -d and that port 81 is mapped in your compose file.
How does it compare to Traefik, Caddy or SWAG?
The README does not compare these projects. Nginx Proxy Manager focuses on a browser interface for simple home and small setups, while Traefik and Caddy are configured through files or labels. Check each project's documentation to decide.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
Nginx Proxy Manager suits people self-hosting a few web apps at home who want domain names, HTTPS and a browser interface, and who are comfortable with Docker Compose. It is not a fit for large high-availability deployments, for anyone who wants full manual control of Nginx config files, or for users who cannot run Docker.
Install options & downloads