Nginx Proxy Manager

Reverse proxy with SSL management.

Overview

PropertyValue
Host192.168.1.10 (LXC 103)
TypeDocker on LXC (Proxmox)
Admin Port81
HTTP80
HTTPS443
Primary Domainshdwnet.cloud

Access


βœ… Active Proxy Hosts (2026-02-03)

All services migrated to shdwnet.cloud domain with Let’s Encrypt SSL.

DomainTargetPortSchemeSSLNotes
notes.shdwnet.cloud192.168.1.1563030httpβœ…Quartz notes (PM2)
plex.shdwnet.cloud192.168.1.15632400httpβœ…Plex Media Server
paperless.shdwnet.cloud192.168.1.1568000httpβœ…Paperless-ngx
vault.shdwnet.cloud192.168.1.20443httpsβœ…Vaultwarden
uptime.shdwnet.cloud192.168.1.203001httpβœ…Uptime Kuma
pulse.shdwnet.cloud192.168.1.203001httpβœ…Alias β†’ Uptime Kuma
portainer.shdwnet.cloud192.168.1.209443httpsβœ…Portainer
netdata.shdwnet.cloud76.13.115.7619998httpβœ…VPS monitoring (basic auth)

SSL Certificates

All certs via Let’s Encrypt, auto-renewal enabled.

CertificateDomainsExpires
notes.shdwnet.cloudnotes.shdwnet.cloud2026-05-04
plex.shdwnet.cloudplex.shdwnet.cloud2026-05-04
paperless.shdwnet.cloudpaperless.shdwnet.cloud2026-05-04
vault.shdwnet.cloudvault.shdwnet.cloud2026-05-04
uptime.shdwnet.clouduptime.shdwnet.cloud, pulse.shdwnet.cloud2026-05-04
portainer.shdwnet.cloudportainer.shdwnet.cloud2026-05-04
netdata.shdwnet.cloudnetdata.shdwnet.cloud2026-05-04

Architecture

Internet (Cloudflare DNS)
    β”‚
    β”‚  *.shdwnet.cloud β†’ WAN IP (wildcard A record)
    β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Router (Port Forward)                     β”‚
β”‚                    80/443 β†’ 192.168.1.10                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
    β”‚
    β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              NPM (192.168.1.10) - LXC 103                   β”‚
β”‚                                                              β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚              SSL Termination (Let's Encrypt)           β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                            β”‚                                 β”‚
β”‚         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”             β”‚
β”‚         β–Ό                  β–Ό                  β–Ό             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚  β”‚  pop-os     β”‚    β”‚  docker1    β”‚    β”‚    VPS      β”‚     β”‚
β”‚  β”‚ .156        β”‚    β”‚ .20         β”‚    β”‚ 76.13...    β”‚     β”‚
β”‚  β”‚             β”‚    β”‚             β”‚    β”‚             β”‚     β”‚
β”‚  β”‚ β€’ notes:3030β”‚    β”‚ β€’ vault:443 β”‚    β”‚ β€’ netdata   β”‚     β”‚
β”‚  β”‚ β€’ plex:32400β”‚    β”‚ β€’ uptime:3001    β”‚   :19998    β”‚     β”‚
β”‚  β”‚ β€’ paper:8000β”‚    β”‚ β€’ port:9443 β”‚    β”‚             β”‚     β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Adding New Proxy Host

  1. Login to NPM admin: http://192.168.1.10:81
  2. Proxy Hosts β†’ Add Proxy Host
  3. Details Tab:
    • Domain Names: service.shdwnet.cloud
    • Scheme: http (or https if backend uses SSL)
    • Forward Hostname/IP: target IP
    • Forward Port: target port
    • βœ… Block Common Exploits
    • βœ… Websockets Support (if needed)
  4. SSL Tab:
    • Request new SSL Certificate
    • βœ… Force SSL
    • βœ… HTTP/2 Support
    • Email: your@email.com

API Access

NPM has a REST API for automation:

# Get token
curl -X POST "http://192.168.1.10:81/api/tokens" \
  -H "Content-Type: application/json" \
  -d '{"identity":"email","secret":"password"}'
 
# List proxy hosts
curl "http://192.168.1.10:81/api/nginx/proxy-hosts" \
  -H "Authorization: Bearer $TOKEN"