Nginx Proxy Manager (NPM) is a web-based interface built on top of NGINX, designed to simplify and make reverse proxy configuration accessible. It’s perfect for both beginners and advanced users who want to manage web services, SSL certificates, and routing without diving into complex Nginx config files.

What Is Nginx Proxy Manager For?

When you’re running multiple web apps or services on the same server (or across different machines), things can quickly get messy with ports and subdomains. NPM solves that by acting as a reverse proxy, routing traffic where it needs to go while offering a secure and easy-to-use interface.

Use cases include:

  • Proxying services like Home Assistant, Nextcloud, Jellyfin, WordPress, and more.
  • Handling SSL certificates automatically.
  • Routing traffic by domain, subdomain, or port.
  • Providing HTTPS access to internal or local services.
  • Restricting access to certain services with HTTP authentication.

Key Features

  • Intuitive web interface: Manage all your proxies, certificates, and settings via a web UI—no need to touch NGINX config files.
  • Let’s Encrypt integration: Free and automated SSL certificate issuance and renewal.
  • Wildcard SSL support (via DNS challenge).
  • Proxy Hosts management: Forward traffic to other ports or servers effortlessly.
  • HTTP Redirection & TCP Streams: Simple creation of HTTP and TCP proxy rules.
  • HTTP Basic Auth: Protect routes or services with username/password.
  • Access & error logs: View logs directly through the dashboard.

How to Easily Install Nginx Proxy Manager

Note: For the example, we’ll use a VPS with Docker preinstalled
Create a directory and place the configuration file inside it:

mkdir npm
cd npm
nano docker-compose.yml

Insert the following code and save the 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

Now, deploy the Docker container using the following command:

docker-compose up -d

Once the container is deployed, you will have access to the Nginx Proxy Manager admin panel.
It will be available on port 81 at your server’s address: http://your-server-IP:81.
Log in to the management dashboard with the following credentials:

Email:    admin@example.com
Password: changeme

Change your default username, email address, and password to secure the server.

Nginx Proxy Manager interface:

How to Install NPM via Portainer and Access It

When ordering the service, you can choose the option with Portainer preinstalled — this will make managing and running Docker containers much easier.

If Portainer is not yet installed, follow our guide with the Unihost installation script. This script not only deploys Portainer but also adds a collection of ready-made templates from our team, including NPM (Nginx Proxy Manager).

To install NPM, simply select the corresponding configuration from the list and follow the steps provided in the instructions.

Open Portainer.

On the main screen, click “Local”.

In the left menu, select “Templates”.
Find the “Nginx Proxy Manager” template and click on it.

Fill out the form.
Click “Deploy the stack” and wait for the installation to complete.

In Portainer, open “Stacks” — your NPM stack will appear.

Go to: http://<your-server-IP>:81
You will be able to access NPM.

Log in using the username and password you set during deployment.

Conclusion

Nginx Proxy Manager is like NGINX for people who don’t want to mess with NGINX config files. It removes the complexity of setting up reverse proxies, SSL, and routing—all from a slick interface.

It won’t replace hand-crafted NGINX for enterprise-grade use cases, but for 90% of users, it’s more than enough.