Skip to content

Nginx Proxy Manager on a VPS

Web panel for Nginx and SSL

Category
Dev / Tools
Author
Jamie Curnow (jc21)
License
MIT
Version
2.16.0

The script is free · VPS from $2.79 per month · installs in about 60 seconds

Install over SSH

root@vps:~# command -v docker >/dev/null || curl -fsSL https://get.docker.com | sh; docker run -d --name npm --restart unless-stopped -p 80:80 -p 81:81 -p 443:443 -v npm-data:/data -v npm-letsencrypt:/etc/letsencrypt jc21/nginx-proxy-manager:latest

  • SystemUbuntu 24.04 · x86_64ok
  • Sourcegithub.com/NginxProxyManager/nginx-proxy-managerok
  • Version2.16.0ok
  • Port81/tcplisten
  • Port80/tcplisten
  • Port443/tcplisten

✓ Nginx Proxy Manager 2.16.0 installed · about 60 seconds

root@vps:~#

Install command from the library. Output is shortened and may differ on your server.

What it is

  • Reverse proxy
  • SSL
  • Web panel
  • Nginx

Nginx Proxy Manager is a web interface on top of Nginx: domains, proxying to services and free Let's Encrypt certificates are set up with a mouse, no config files.

Handy when a VPS runs several services (a panel, n8n, a bot, a website) and each needs its own domain with HTTPS.

Runs in Docker; on first login the wizard asks you to create an administrator.

  • Proxy hosts for domains in a couple of clicks
  • Let's Encrypt with auto-renewal
  • Access lists and basic auth
  • Redirects and 404 pages
  • TCP/UDP stream forwarding

Recommended plan

For Nginx Proxy Manager: at least 1 vCPU, 2 GB RAM and 10 GB NVMe.

Minimum to run
1 vCPU · 1 GB RAM · 10 GB disk
Systems
Ubuntu 22.04 · Ubuntu 24.04 · Debian 12

How to install

Three steps in the bot or one command over SSH; installation takes about 60 seconds.

  1. 01

    Choose a plan in the bot

    Open @ExpressHost_bot and pay for a VPS. The server will be ready in about 60 seconds.

  2. 02

    Add Nginx Proxy Manager

    At the “Add-ons” step pick the script from the library, or run it later: Server settings → Scripts.

  3. 03

    Open http://server-IP:81 and create an administrator

    The bot will send the server address and login details to the chat.

Manually over SSH

Connect to the server as root and run the command. Supported systems: Ubuntu 22.04, Ubuntu 24.04, Debian 12.

Install command
command -v docker >/dev/null || curl -fsSL https://get.docker.com | sh; docker run -d --name npm --restart unless-stopped -p 80:80 -p 81:81 -p 443:443 -v npm-data:/data -v npm-letsencrypt:/etc/letsencrypt jc21/nginx-proxy-manager:latest

Ports

Nginx Proxy Manager ports
PortProtocolPurpose
81tcpAdmin panel
80tcpHTTP
443tcpHTTPS

After installation

  1. 1.Open http://server-IP:81 and create an administrator
  2. 2.Add a Proxy Host: domain, service address and port
  3. 3.Issue a Let's Encrypt certificate on the SSL tab

Nginx Proxy Manager FAQ

Didn’t find an answer? Message @ExpressHost_SupportBot.

How do I proxy a service from another container?

Enter the host IP (for example, 172.17.0.1) and the service port, or attach both containers to the same Docker network and use the container name.

How do I update?

Run docker pull jc21/nginx-proxy-manager:latest and recreate the container with the same command.

Where is the data stored?

In the npm-data (settings and database) and npm-letsencrypt (certificates) volumes.

Nginx Proxy Manager installs at checkout.