Checklist
- Have you pulled and found the error with
jc21/nginx-proxy-manager:latest docker image?
- Are you sure you're not using someone else's docker image?
- Have you searched for similar issues (both open and closed)?
Describe the bug
WebUI never loads.
Last message from console is Completed SSL cert renew process.
Nginx Proxy Manager Version
can't reach the login page.
To Reproduce
Steps to reproduce the behavior:
- run docker compose up on new os install
- process hangs before any more steps can be taken
- remove volumes and try again - no change
Expected behavior
WebUI loads.
Screenshots
Operating System
Endeavor OS (Docker)
Additional context
Console log:
✔ Container cloudflare-tunnel Running 0.0s
✔ Container proxy-app-1 Running 0.0s
Attaching to cloudflare-tunnel, app-1, db-1
app-1 | - /opt/certbot/lib/python3.11/site-packages ...
app-1 | SKIPPED
app-1 | ❯ Dynamic resolvers ...
app-1 | ❯ IPv6 ...
app-1 | Enabling IPV6 in hosts in: /etc/nginx/conf.d
app-1 | - /etc/nginx/conf.d/production.conf
app-1 | - /etc/nginx/conf.d/default.conf
app-1 | - /etc/nginx/conf.d/include/proxy.conf
app-1 | - /etc/nginx/conf.d/include/letsencrypt-acme-challenge.conf
app-1 | - /etc/nginx/conf.d/include/ssl-ciphers.conf
app-1 | - /etc/nginx/conf.d/include/block-exploits.conf
app-1 | - /etc/nginx/conf.d/include/log-proxy.conf
app-1 | - /etc/nginx/conf.d/include/assets.conf
app-1 | - /etc/nginx/conf.d/include/log-stream.conf
app-1 | - /etc/nginx/conf.d/include/ip_ranges.conf
app-1 | - /etc/nginx/conf.d/include/ssl-cache.conf
app-1 | - /etc/nginx/conf.d/include/ssl-cache-stream.conf
app-1 | - /etc/nginx/conf.d/include/force-ssl.conf
app-1 | - /etc/nginx/conf.d/include/resolvers.conf
app-1 | Enabling IPV6 in hosts in: /data/nginx
app-1 | ❯ Docker secrets ...
app-1 |
app-1 | -------------------------------------
app-1 | _ _ ____ __ __
app-1 | | \ | | _ | / |
app-1 | | | | |) | |/| |
app-1 | | |\ | __/| | | |
app-1 | || _|| || |_|
app-1 | -------------------------------------
app-1 | User: npm PUID:0 ID:0 GROUP:0
app-1 | Group: npm PGID:0 ID:0
app-1 | -------------------------------------
app-1 |
app-1 | ❯ Starting backend ...
app-1 | ❯ Starting nginx ...
db-1 |
db-1 | PostgreSQL Database directory appears to contain a database; Skipping initialization
db-1 |
db-1 | 2026-05-06 02:06:00.771 UTC [1] LOG: starting PostgreSQL 18.3 (Debian 18.3-1.pgdg13+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 14.2.0-19) 14.2.0, 64-bit
db-1 | 2026-05-06 02:06:00.806 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
db-1 | 2026-05-06 02:06:00.806 UTC [1] LOG: listening on IPv6 address "::", port 5432
db-1 | 2026-05-06 02:06:01.174 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db-1 | 2026-05-06 02:06:01.543 UTC [33] LOG: database system was shut down at 2026-05-06 01:48:36 UTC
db-1 | 2026-05-06 02:06:01.985 UTC [1] LOG: database system is ready to accept connections
app-1 | [5/6/2026] [2:06:30 AM] [Global ] › ℹ info Using Postgres configuration
app-1 | [5/6/2026] [2:06:38 AM] [Migrate ] › ℹ info Current database version: 20260131163528
app-1 | [5/6/2026] [2:06:39 AM] [Setup ] › ℹ info Logrotate Timer initialized
app-1 | [5/6/2026] [2:06:39 AM] [Setup ] › ℹ info Logrotate completed.
app-1 | [5/6/2026] [2:06:39 AM] [Global ] › ℹ info IP Ranges fetch is enabled
app-1 | [5/6/2026] [2:06:39 AM] [IP Ranges] › ℹ info Fetching IP Ranges from online services...
app-1 | [5/6/2026] [2:06:39 AM] [IP Ranges] › ℹ info Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
app-1 | [5/6/2026] [2:06:39 AM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v4
app-1 | [5/6/2026] [2:06:39 AM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v6
app-1 | [5/6/2026] [2:06:40 AM] [SSL ] › ℹ info Let's Encrypt Renewal Timer initialized
app-1 | [5/6/2026] [2:06:40 AM] [SSL ] › ℹ info Renewing SSL certs expiring within 30 days ...
app-1 | [5/6/2026] [2:06:40 AM] [IP Ranges] › ℹ info IP Ranges Renewal Timer initialized
app-1 | [5/6/2026] [2:06:40 AM] [Global ] › ℹ info Backend PID 169 listening on port 3000 ...
app-1 | [5/6/2026] [2:06:40 AM] [SSL ] › ℹ info Completed SSL cert renew process
db-1 | 2026-05-06 02:11:01.614 UTC [31] LOG: checkpoint starting: time
db-1 | 2026-05-06 02:11:02.240 UTC [31] LOG: checkpoint complete: wrote 1 buffers (0.0%), wrote 3 SLRU buffers; 0 WAL file(s) added, 0 removed, 0 recycled; write=0.219 s, sync=0.132 s, total=0.626 s; sync files=3, longest=0.054 s, average=0.044 s; distance=0 kB, estimate=0 kB; lsn=0/1D06040, redo lsn=0/1D05FD0
Docker-compose:
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# These ports are in format :
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
# Add any other Stream port you want to expose
# - '21:21' # FTP
environment:
# Postgres parameters:
DB_POSTGRES_HOST: 'db'
DB_POSTGRES_PORT: '5432'
DB_POSTGRES_USER: 'npm'
DB_POSTGRES_PASSWORD: 'npmpass'
DB_POSTGRES_NAME: 'npm'
# Uncomment this if IPv6 is not enabled on your host
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
db:
image: postgres:latest
environment:
POSTGRES_USER: 'npm'
POSTGRES_PASSWORD: 'npmpass'
POSTGRES_DB: 'npm'
volumes:
- ./postgres:/var/lib/postgresql
Checklist
jc21/nginx-proxy-manager:latestdocker image?Describe the bug
WebUI never loads.
Last message from console is Completed SSL cert renew process.
Nginx Proxy Manager Version
can't reach the login page.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
WebUI loads.
Screenshots
Operating System
Endeavor OS (Docker)
Additional context
Console log:
✔ Container cloudflare-tunnel Running 0.0s
✔ Container proxy-app-1 Running 0.0s
Attaching to cloudflare-tunnel, app-1, db-1
app-1 | - /opt/certbot/lib/python3.11/site-packages ...
app-1 | SKIPPED
app-1 | ❯ Dynamic resolvers ...
app-1 | ❯ IPv6 ...
app-1 | Enabling IPV6 in hosts in: /etc/nginx/conf.d
app-1 | - /etc/nginx/conf.d/production.conf
app-1 | - /etc/nginx/conf.d/default.conf
app-1 | - /etc/nginx/conf.d/include/proxy.conf
app-1 | - /etc/nginx/conf.d/include/letsencrypt-acme-challenge.conf
app-1 | - /etc/nginx/conf.d/include/ssl-ciphers.conf
app-1 | - /etc/nginx/conf.d/include/block-exploits.conf
app-1 | - /etc/nginx/conf.d/include/log-proxy.conf
app-1 | - /etc/nginx/conf.d/include/assets.conf
app-1 | - /etc/nginx/conf.d/include/log-stream.conf
app-1 | - /etc/nginx/conf.d/include/ip_ranges.conf
app-1 | - /etc/nginx/conf.d/include/ssl-cache.conf
app-1 | - /etc/nginx/conf.d/include/ssl-cache-stream.conf
app-1 | - /etc/nginx/conf.d/include/force-ssl.conf
app-1 | - /etc/nginx/conf.d/include/resolvers.conf
app-1 | Enabling IPV6 in hosts in: /data/nginx
app-1 | ❯ Docker secrets ...
app-1 |
app-1 | -------------------------------------
app-1 | _ _ ____ __ __
app-1 | | \ | | _ | / |
app-1 | | | | |) | |/| |
app-1 | | |\ | __/| | | |
app-1 | || _|| || |_|
app-1 | -------------------------------------
app-1 | User: npm PUID:0 ID:0 GROUP:0
app-1 | Group: npm PGID:0 ID:0
app-1 | -------------------------------------
app-1 |
app-1 | ❯ Starting backend ...
app-1 | ❯ Starting nginx ...
db-1 |
db-1 | PostgreSQL Database directory appears to contain a database; Skipping initialization
db-1 |
db-1 | 2026-05-06 02:06:00.771 UTC [1] LOG: starting PostgreSQL 18.3 (Debian 18.3-1.pgdg13+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 14.2.0-19) 14.2.0, 64-bit
db-1 | 2026-05-06 02:06:00.806 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
db-1 | 2026-05-06 02:06:00.806 UTC [1] LOG: listening on IPv6 address "::", port 5432
db-1 | 2026-05-06 02:06:01.174 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db-1 | 2026-05-06 02:06:01.543 UTC [33] LOG: database system was shut down at 2026-05-06 01:48:36 UTC
db-1 | 2026-05-06 02:06:01.985 UTC [1] LOG: database system is ready to accept connections
app-1 | [5/6/2026] [2:06:30 AM] [Global ] › ℹ info Using Postgres configuration
app-1 | [5/6/2026] [2:06:38 AM] [Migrate ] › ℹ info Current database version: 20260131163528
app-1 | [5/6/2026] [2:06:39 AM] [Setup ] › ℹ info Logrotate Timer initialized
app-1 | [5/6/2026] [2:06:39 AM] [Setup ] › ℹ info Logrotate completed.
app-1 | [5/6/2026] [2:06:39 AM] [Global ] › ℹ info IP Ranges fetch is enabled
app-1 | [5/6/2026] [2:06:39 AM] [IP Ranges] › ℹ info Fetching IP Ranges from online services...
app-1 | [5/6/2026] [2:06:39 AM] [IP Ranges] › ℹ info Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
app-1 | [5/6/2026] [2:06:39 AM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v4
app-1 | [5/6/2026] [2:06:39 AM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v6
app-1 | [5/6/2026] [2:06:40 AM] [SSL ] › ℹ info Let's Encrypt Renewal Timer initialized
app-1 | [5/6/2026] [2:06:40 AM] [SSL ] › ℹ info Renewing SSL certs expiring within 30 days ...
app-1 | [5/6/2026] [2:06:40 AM] [IP Ranges] › ℹ info IP Ranges Renewal Timer initialized
app-1 | [5/6/2026] [2:06:40 AM] [Global ] › ℹ info Backend PID 169 listening on port 3000 ...
app-1 | [5/6/2026] [2:06:40 AM] [SSL ] › ℹ info Completed SSL cert renew process
db-1 | 2026-05-06 02:11:01.614 UTC [31] LOG: checkpoint starting: time
db-1 | 2026-05-06 02:11:02.240 UTC [31] LOG: checkpoint complete: wrote 1 buffers (0.0%), wrote 3 SLRU buffers; 0 WAL file(s) added, 0 removed, 0 recycled; write=0.219 s, sync=0.132 s, total=0.626 s; sync files=3, longest=0.054 s, average=0.044 s; distance=0 kB, estimate=0 kB; lsn=0/1D06040, redo lsn=0/1D05FD0
Docker-compose:
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# These ports are in format :
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
# Add any other Stream port you want to expose
# - '21:21' # FTP
environment:
# Postgres parameters:
DB_POSTGRES_HOST: 'db'
DB_POSTGRES_PORT: '5432'
DB_POSTGRES_USER: 'npm'
DB_POSTGRES_PASSWORD: 'npmpass'
DB_POSTGRES_NAME: 'npm'
# Uncomment this if IPv6 is not enabled on your host
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
db:
image: postgres:latest
environment:
POSTGRES_USER: 'npm'
POSTGRES_PASSWORD: 'npmpass'
POSTGRES_DB: 'npm'
volumes:
- ./postgres:/var/lib/postgresql