NGINX PROXY MANAGER ยท SSL ยท HOME ASSISTANT ADD-ON

Nginx Proxy Manager in Cyan Glass.

Operations wiki for the Nginx Proxy Manager Home Assistant Add-on: installation, SSL setup, DNS-01 challenges, MariaDB integration and troubleshooting.

Add-on Slugnginx_proxy_manager
Admin UIhttp://homeassistant.local:81
HTTP/HTTPS:80 / :443
Upstream Imagejc21/nginx-proxy-manager

โšก Default Credentials

Change immediately after first login.

Email:    admin@example.com
Password: changeme
URL:      http://homeassistant.local:81

๐Ÿงญ Port Requirements

Ports 80 and 443 must be free on the host.

Admin UI:  :81 (LAN only)
HTTP:      :80 (optional, HTTP-01 ACME)
HTTPS:     :443 (public proxy)
๐Ÿ 

Home

Overview

#home

Nginx Proxy Manager is a reverse proxy management UI with SSL automation. This add-on wraps the official jc21/nginx-proxy-manager image with HA Supervisor integration, secrets support and optional MariaDB backend.

#Wiki Pages

PagePurpose
InstallationAdd repository, install, start.
ConfigurationSQLite vs MariaDB, secrets, JWT.
First StartDefault login, change credentials.
SSL & Let's EncryptDNS-01, DuckDNS, wildcard certs.
TroubleshootingPort conflicts, cert failures, DB issues.

#Minimum Operating Model

Browser โ†’ NPM Admin UI :81
NPM     โ†’ manages nginx configs, SSL certs
nginx   โ†’ proxies :80/:443 to internal services
๐Ÿš€

Installation

Install the Add-on

#installation

#Step 1 โ€” Add Repository

  1. Open Home Assistant.
  2. Go to Settings โ†’ Add-ons โ†’ Add-on Store.
  3. Open โ‹ฎ โ†’ Repositories.
  4. Add:
https://github.com/pol4rfuchs/ha-apps

#Step 2 โ€” Install

  1. Search for Nginx Proxy Manager.
  2. Click Install.

#Step 3 โ€” Start

  1. Enable Start on boot.
  2. Click Start.
  3. Open the Admin UI at port 81.
Ports 80 and 443 must be free on the host. Disable any other service using these before starting.
โš™๏ธ

Configuration

Options & Secrets

#configuration

#SQLite (Default)

No configuration required. NPM creates its own SQLite database under /data/npm/ on first start.

#MariaDB Backend

Install and start the HA MariaDB add-on, then create the database and user before enabling this option.

db_type: mariadb
mariadb_host: core-mariadb
mariadb_port: 3306
mariadb_name: npm
mariadb_user: npm

Password goes in secrets.yaml, not the add-on config:

mariadb_password: "dein_passwort"
npm_jwt_secret: "einlangesrandommjwtsecret"
The DB password and JWT secret are no longer add-on config options โ€” they were moved out of options/schema into secrets.yaml for security.

#All Options

OptionDefaultDescription
db_typesqlitesqlite or mariadb. (Replaces the old use_mariadb boolean.)
mariadb_hostemptyMariaDB add-on hostname, e.g. core-mariadb.
mariadb_port3306MariaDB port.
mariadb_namenpmDatabase name. (Renamed from mariadb_database.)
mariadb_usernpmMariaDB user. (Renamed from mariadb_username.)
http_port80HTTP port.
https_port443HTTPS port.
disable_ipv6falseDisable IPv6.
log_levelinfoinfo / warning / error / debug.

#Secrets (secrets.yaml)

KeyDescription
mariadb_passwordPassword for the MariaDB connection.
npm_jwt_secretCustom JWT secret (optional).
โœ…

First Start

Default Credentials

#first-start

#Default Login

URL:      http://homeassistant.local:81
Email:    admin@example.com
Password: changeme
Change the email and password immediately after first login.

#Create Your First Proxy Host

  1. Click Proxy Hosts โ†’ Add Proxy Host.
  2. Set the domain name (e.g. ha.yourdomain.com).
  3. Set the forward hostname to homeassistant.local or HA IP.
  4. Set the forward port to 8123.
  5. Enable SSL under the SSL tab.
๐Ÿ”

SSL & Let's Encrypt

Certificate Management

#ssl

#HTTP-01 Challenge

Requires port 80 to be forwarded to your HA host. Works for standard domain certificates.

#DNS-01 Challenge (Recommended)

Works without port forwarding. Supports wildcard certificates. Available providers in NPM include Cloudflare, DuckDNS, Route53 and more.

  1. SSL Certificates โ†’ Add SSL Certificate โ†’ Let's Encrypt.
  2. Enable Use DNS Challenge.
  3. Select your DNS provider.
  4. Enter your API credentials.

#DuckDNS Setup

Provider:     DuckDNS
Token:        your-duckdns-token
Domain:       your-subdomain.duckdns.org
DuckDNS wildcard certs cover *.your-subdomain.duckdns.org โ€” useful for multiple subdomains on one certificate.

#Auto-Renewal

NPM renews certificates automatically before expiry. No manual action required after initial setup.

๐ŸŒ

Ports & Networking

Port Reference

#ports
PortProtocolPurposeExpose publicly?
80/tcpHTTPProxy + ACME HTTP-01 challengeYes (for HTTP)
443/tcpHTTPSProxy (SSL)Yes (for HTTPS)
81/tcpHTTPNPM Admin UINo โ€” LAN only
Never expose the Admin UI (port 81) to the internet. Keep it behind your LAN or VPN.
๐Ÿ’พ

Persistence

Data & Backup

#persistence
/data/
โ”œโ”€โ”€ database.sqlite    # NPM database (if not using MariaDB)
โ”œโ”€โ”€ nginx/             # Generated nginx configurations
โ””โ”€โ”€ letsencrypt/       # Let's Encrypt certificates and ACME data
Important: The letsencrypt/ folder contains your private keys and certificates. HA backups include it automatically.

#Backup Workflow

  1. Settings โ†’ System โ†’ Backups โ†’ Create Backup.
  2. This captures NPM config, certificates and (if SQLite) the database.
  3. For MariaDB: also back up the MariaDB add-on data.
๐Ÿ› ๏ธ

Troubleshooting

Known Symptoms & Fixes

#troubleshooting
SymptomCauseFix
Port 81 not accessiblePort not mapped in Network tab.Add port mapping in add-on Network settings.
Port 80/443 conflictAnother service uses these ports.Stop conflicting service or change its port.
Let's Encrypt failsPort 80 not forwarded (HTTP-01).Use DNS-01 challenge or forward port 80 on router.
MariaDB connection refusedWrong credentials or MariaDB not running.Verify MariaDB add-on is running and credentials match.
White screen on UIBrowser cache issue.Clear cache and try direct URL: http://HA-IP:81
Proxy host returns 502Upstream service not running or wrong port.Verify the forwarded service is running and the port is correct.