1 nginx proxy manager
Luca Matteo Spoljarevic edited this page 2026-02-27 21:45:51 +01:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Nginx Proxy Manager

Nginx Proxy Manager (NPM) is a web UI for managing Nginx reverse proxies, HTTP/HTTPS and SSL (e.g. Lets Encrypt). This setup runs it with Podman Compose.


What the compose file does

  • Service: app — Nginx Proxy Manager from jc21/nginx-proxy-manager:latest
  • Restart: unless-stopped
  • Timezone: Europe/Berlin (set via TZ)
  • Ports:
    • 80 — HTTP
    • 81 — Admin UI
    • 443 — HTTPS
  • Volumes:
    • Data: /mnt/storage/git/spoljarevic/homelab/nginx-proxy-manager/data/data
    • Lets Encrypt: /mnt/storage/git/spoljarevic/homelab/nginx-proxy-manager/letsencrypt/etc/letsencrypt

Data and certificates are stored on the host so they persist across container restarts.


Prerequisites

  • Podman and Podman Compose installed
  • Host directories (created automatically if you have permissions, or create manually):
    • .../nginx-proxy-manager/data
    • .../nginx-proxy-manager/letsencrypt
  • Ports 80, 81, and 443 free on the host (or change the left side of the port mappings)

How to use

  1. Go to the project folder:

    cd nginx-proxy-manager
    
  2. Start the container:

    podman-compose up -d
    
  3. Open the admin UI:
    http://<your-host>:81

  4. First login:
    Default credentials are often:

    • Email: admin@example.com
    • Password: changeme
      (Check the official NPM docs for current defaults and change them immediately.)
  5. Configure:

    • Add proxy hosts (domain → backend host:port)
    • Request SSL certificates (Lets Encrypt) from the UI
    • Use “Access Lists” for simple HTTP auth if needed
  6. Stop:

    podman-compose down
    

Useful commands

Action Command
Start podman-compose up -d
Stop podman-compose down
Logs podman-compose logs -f
Restart podman-compose restart

Customization

  • Change TZ in the compose file to your timezone (e.g. America/New_York).
  • To use different host paths, edit the volumes section and ensure the directories exist.
  • If 80/443 are used by another service, change the host side of the port mapping (e.g. 8080:80, 8443:443); youll then need to access the UI and HTTP/HTTPS on those ports or put NPM behind another reverse proxy.