Skip to main content

🌐 Nginx Proxy Manager Setup on Unraid

Nginx Proxy Manager (NPM) is a web-based reverse proxy that allows you to manage and secure access to your services with ease. It supports Let's Encrypt SSL, custom domains, access lists, and more.


βœ… Prerequisites​

  • Unraid 6.10 or newer
  • Docker service running
  • Community Applications Plugin installed
  • A domain name (e.g., from Namecheap, Cloudflare, GoDaddy)
  • Ports 80 and 443 forwarded to your Unraid server (for external SSL access)

1. πŸ“¦ Install Nginx Proxy Manager​

  1. Go to the Apps tab in Unraid
  2. Search for nginx proxy manager
  3. Install the one from jc21/nginx-proxy-manager

βš™οΈ Container Settings​

SettingValue
/config/mnt/user/appdata/npm/
PortsSet to: 80 β†’ 8080 (or keep 80 if unused) 81 β†’ 81 (admin UI) 443 β†’ 4443 (or keep 443 if unused)
Network TypeBridge

If you want NPM to bind directly to ports 80/443 for public access, make sure no other service (like Unraid's built-in web UI) is using them.

Click Apply to install and start the container.


2. πŸ›  Access the NPM Web UI​

  • Navigate to: http://[UNRAID-IP]:81
  • Default login:
Email:    admin@example.com  
Password: changeme
  • You'll be prompted to reset the email and password.

3. 🌐 Configure Your Domain (DNS Setup)​

Example subdomains:

  • plex.yourdomain.com
  • radarr.yourdomain.com
  • nextcloud.yourdomain.com

Update DNS Records​

In your domain provider’s DNS settings (or via Cloudflare):

  • Add an A Record:

    Type: A  
    Name: @
    Value: Your WAN IP (e.g., 123.45.67.89)
    TTL: Auto
  • Add CNAME Records (optional):

    Type: CNAME  
    Name: plex
    Target: @

πŸ“ If using Cloudflare, disable proxying (orange cloud β†’ gray) for setup. You can re-enable after SSL is issued.


4. βž• Add a Proxy Host​

  1. Go to Proxy Hosts in NPM UI
  2. Click Add Proxy Host
  3. Fill in:
FieldValue
Domain Namesplex.yourdomain.com (or others)
Schemehttp or https
Forward Hostname/IPInternal IP of container (e.g., 192.168.1.100)
Forward PortApp port (e.g., 32400 for Plex)
Block Common Exploitsβœ… Checked
Websockets Supportβœ… Checked (if app requires it)

SSL Tab:​

  • Check: Force SSL and HTTP/2 Support
  • Select: Request a new SSL certificate
  • Agree to Terms of Service
  • Enter your email

πŸ’‘ If certificate fails, double-check DNS records and that port 80 is accessible externally.

Click Save.


  1. Go to Access Lists

  2. Create a new list with username/password

  3. Edit your Proxy Host for NPM (port 81):

    • Add the access list under Authorization

Or, expose NPM’s UI behind a subdomain (e.g., admin.yourdomain.com) and add basic auth.


6. πŸšͺ Port Forwarding (Router Setup)​

Forward the following ports to your Unraid server’s local IP:

External PortInternal PortProtocol
8080 (or 8080)TCP
443443 (or 4443)TCP

This allows Let’s Encrypt to verify your domain and issue SSL certificates.


7. 🧼 Cleanup & Next Steps​

  • Redirect Unraid's web UI to a different port (if needed) under Settings β†’ Management Access
  • Setup other apps (Plex, Sonarr, Jellyfin, etc.) behind proxy
  • Set up fail2ban or Cloudflare Proxy for security