NginxProxyManager/nginx-proxy-manager
DevOps & Self-hostingA Docker-based web UI for configuring Nginx reverse proxy hosts with free Let's Encrypt SSL.
What it does
Nginx Proxy Manager packages Nginx and a web administration interface into a pre-built Docker image. It is aimed at people who self-host web services and want reverse proxying plus TLS termination without hand-writing Nginx configuration or managing Certbot workflows. From the admin UI you can create forwarding hosts, redirections, TCP/UDP streams and 404 hosts, obtain free Let's Encrypt certificates or upload custom ones, attach access lists and basic HTTP authentication, and manage users with permissions and an audit log. Advanced raw Nginx configuration is available for users who need it. The UI is built on Tabler project features.
Quick start
Prerequisites: Docker installed, and ports 80, 81 and 443 free on the host.
- Install Docker following the Docker documentation.
- Create a
docker-compose.ymlwith the minimal service definition from the quick setup:
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/letsencrypt
- Start the stack:
docker compose up -d
- Open the admin interface at port
81, e.g.http://127.0.0.1:81. Container startup can take a moment while keys are generated admin access. Complete configuration of domains, upstream hosts and certificates happens in that UI.
For a home setup, the documented path is port forwarding 80/443 on the router to this server and pointing the domain at the public IP, either statically or via a dynamic DNS service such as DuckDNS, Route53 or Cloudflare hosting notes.
Constraints
- Version 2.14 and later no longer support
armv7because Node.js dropped armhf support; users on that architecture are directed to the2.13.7image tag platform note. - The container needs ports 80, 81 and 443, and persistent volumes for
/dataand/etc/letsencrypt; the quick-start compose file is described as the bare minimum, with more options in the full setup guide. - Automatic certificate issuance depends on the domain resolving to the host and on inbound port 80/443 reachability, which is why the hosting section covers DNS and port forwarding.
- The project is MIT-licensed and accepts pull requests against the
developbranch; releases come frommastercontributing notes.
Discussion context
An HN thread from 2022 gathered 81 points and 76 comments thread. Some users reported operational problems: one said an authentication bug left self-hosted services exposed comment, and another described SSL certificates being misassigned on restart until each host was re-saved comment. Others preferred running vanilla Nginx, Caddy or NixOS-level configuration for fewer moving parts NixOS example, Caddy reverse proxy, and one long-time user moved to Caddy Docker Proxy because compose-file configuration suited them better comment. These are older, individual reports rather than verified current behavior, but they point to review areas for anyone exposing services publicly.
HotRepo's take
On the 2026-11-14 daily JavaScript list the repository recorded 34,708 stars and 3,974 forks with 15 stars gained that day, placing 5th on that language list. That is a single-snapshot observation, not a trend: the data available here does not show whether interest is rising or flat. What the snapshot does support is that a 2017-era Nginx wrapper remains a heavily starred and actively starred-on project years after launch, and the 2022 HN discussion shows the trade-off that drives its adoption and criticism — convenience over hand-written configuration, with reliability concerns raised by some users.
Written by AI from the project's README, updated . The project's own docs are the source of truth.