Nginx Proxy Manager (NPM)

What is it?
A web UI for Nginx reverse proxying with built-in SSL (Let’s Encrypt), access lists, and simple host routing. One container, no external DB (uses SQLite in /data).

Why I use it

  • Point-and-click reverse proxy with SSL for homelab apps
  • Quick HTTP→service mapping + automatic certificates
  • Easier than hand-editing Nginx for small setups

Default login
admin@example.com / changeme (or admin) → change immediately after first login.

Deploy with Portainer (Web editor)
Stacks → Add stackWeb editor → paste → Deploy.

Links

services:
  nginx-proxy-manager:
      container_name: npm
      image: jc21/nginx-proxy-manager:latest
      ports:
        - "80:80"
        - "443:443"
        - "81:81"    # Web UI for NPM
      environment:
        TZ: "Europe/London"
      volumes:
        - /opt/homelab/data/npm/data:/data
        - /opt/homelab/data/npm/letsencrypt:/etc/letsencrypt
      
      restart: unless-stopped
      dns:
        - 1.1.1.1
        - 8.8.8.8
      networks:
      - homelab

networks:
  homelab:
    external: true
YAML