Hands-on VPS & self-hosting Monday, June 1, 2026
VPS.app
Hands-on VPS benchmarks and self-hosting guides — tested, not theorized.
Self-Hosting Guides

Nginx Proxy Manager Setup: Free HTTPS for Self-Hosted Apps (2026)

Some links below are affiliate links: if you buy through them I may earn a commission at no extra cost to you. I only recommend what I have actually tested, and it never changes my verdict.

Reverse proxy and servers

Nginx Proxy Manager (NPM) is the easiest way to put HTTPS in front of your self-hosted apps. Instead of hand-writing Nginx configs and renewing certificates, you add a “proxy host” in a web UI and it requests a free Let’s Encrypt certificate for you. Every other guide on this site points here for the HTTPS step.

Prerequisites

Step 1 — Compose file

services:
  npm:
    image: jc21/nginx-proxy-manager:latest
    restart: always
    ports:
      - "80:80"
      - "443:443"
      - "81:81"   # admin UI
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
docker compose up -d

Step 2 — First login

Open http://your-server-ip:81. The default credentials are:

Change both immediately on first login.

Step 3 — Add a proxy host with HTTPS

For each app:

  1. Hosts → Proxy Hosts → Add Proxy Host
  2. Domain: e.g. cloud.yourdomain.com
  3. Forward to the app’s container name and port (e.g. app / 80), or the host IP and published port.
  4. SSL tab → Request a new Let’s Encrypt certificate, enable Force SSL.

Save, and the app is live on HTTPS.

Use it everywhere

This is the HTTPS step for every app guide here — Nextcloud and others. Run it on any small VPS — a Hetzner box is plenty. See Best VPS for Self-Hosting.

Frequently asked questions

What does a reverse proxy do?

It sits in front of your apps and routes a domain (e.g. cloud.yourdomain.com) to the right container, while handling HTTPS certificates centrally. You expose only ports 80/443 instead of one port per app.

Is Nginx Proxy Manager free?

Yes, it's open-source and free. It also issues free Let's Encrypt certificates automatically, so HTTPS costs nothing.

Do I need a domain?

Yes — Let's Encrypt issues certificates for domains, not bare IP addresses. Point a domain at your VPS first.