nginx-proxy-manager
nginx-proxy-manager copied to clipboard
2.10.0 unable to start on clean install
Checklist
- Have you pulled and found the error with
jc21/nginx-proxy-manager:latestdocker image?- Yes ~/ No~
- Are you sure you're not using someone else's docker image?
- Yes ~/ No~
- Have you searched for similar issues (both open and closed)?
- Yes ~/ No~
Describe the bug
The :latest and 2.10.0 image fails to start either with an existing configuration, or with a clean install.
Nginx Proxy Manager Version
2.10.0
To Reproduce Steps to reproduce the behavior:
- Start a container
- Watch it fail
Expected behavior
The container should start
Screenshots
➜ lb-pi003 docker compose up -d && docker compose logs -f app
[+] Running 3/3
⠿ Network lb-pi003_default Created 0.8s
⠿ Container lb-pi003-db-1 Started 27.7s
⠿ Container lb-pi003-app-1 Started 18.7s
lb-pi003-app-1 | s6-rc: info: service s6rc-oneshot-runner: starting
lb-pi003-app-1 | s6-rc: info: service s6rc-oneshot-runner successfully started
lb-pi003-app-1 | s6-rc: info: service fix-attrs: starting
lb-pi003-app-1 | s6-rc: info: service fix-attrs successfully started
lb-pi003-app-1 | s6-rc: info: service legacy-cont-init: starting
lb-pi003-app-1 | s6-rc: info: service legacy-cont-init successfully started
lb-pi003-app-1 | s6-rc: info: service prepare: starting
lb-pi003-app-1 | ❯ Configuring npmuser ...
lb-pi003-app-1 | id: 'npmuser': no such user
lb-pi003-app-1 | ❯ Checking paths ...
lb-pi003-app-1 | ❯ Setting ownership ...
lb-pi003-app-1 | s6-rc: fatal: timed out
lb-pi003-app-1 | s6-sudoc: fatal: unable to get exit status from server: Operation timed out
lb-pi003-app-1 | /run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.
Operating System
Rpi
Additional context
I'm assuming different to https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2734 because this is the same error on a clean install or existing install (and not resolved with a restart as the original issue poster)
I have the same problem in a host with OpenMediaVault. On another host with Ubuntu Server I have no problem.
Have a similar issue on multiple Hosts:
s6-rc: info: service s6rc-oneshot-runner: starting s6-rc: info: service s6rc-oneshot-runner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service legacy-cont-init: starting s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service prepare: starting ❯ Configuring npmuser ... id: 'npmuser': no such user useradd: UID 0 is not unique s6-rc: warning: unable to start service prepare: command exited 1 /run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.
After updating from 2.9.22 to 2.10.0 on my Synology DS it failed to start:
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
I did a fresh new install with minimal configuration and got the error:
id: 'npmuser': no such user
s6-rc: fatal: timed out
s6-sudoc: fatal: unable to get exit status from server: Operation timed out
Rolling back to 2.9.22 fixed the issue.
2.10.0 works on my laptop (Pop OS). Synology OS has no user with ID 1000. Maybe that's a hint.
When I do a portainter recreate including "re-pull image", I'm getting the error:
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service prepare: starting
❯ Configuring npmuser ...
id: 'npmuser': no such user
s6-rc: fatal: timed out
s6-sudoc: fatal: unable to get exit status from server: Operation timed out
/run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.
I'm running on jc21/nginx-proxy-manager:2
Back to 2.9.22 "solves" the problem for now :)
can confirm this issue on synology for me. Rollback on 2.9.22 worked
Hi @jicho , I also rolled back to 2.9.22 but got this log, and the login has a Bad Gateway. did you get that log too?
proxy-manager-app-1 | [3/27/2023] [8:17:30 AM] [Global ] › ✖ error create table
migrations(idint unsigned not null auto_increment primary key,namevarchar(255),batchint,migration_timetimestamp) - ER_CANT_CREATE_TABLE: Can't create tableproxy-mgr.migrations(errno: 13 "Permission denied")
Hi @jicho , I also rolled back to 2.9.22 but got this log, and the login has a Bad Gateway. did you get that log too?
proxy-manager-app-1 | [3/27/2023] [8:17:30 AM] [Global ] › ✖ error create table
migrations(idint unsigned not null auto_increment primary key,namevarchar(255),batchint,migration_timetimestamp) - ER_CANT_CREATE_TABLE: Can't create tableproxy-mgr.migrations(errno: 13 "Permission denied")
Hi @adammau2 after going back to tag/label 2.9.22 I had no issues had all. I can login without any issues.
Some more info:
- I run NPM with a SQLite db
- I'm running NPM on a Synology NAS, but do stuff (most of the time) with portainer.
Hi, same issue here. Rolling back to 2.9.22 did the job for now...
Same for me, running on arm7
Same issue here. Ubuntu 22.04 LTS (docker). Confirmed fix on rollback to 2.9.22
Same issue on Ubuntu. Confirmed rollback works fine.
Same on a Arm7 Back to 2.9.22
Ditto. 2.10.0 has the error "'npmuser': no such user" and will not start. Switch back to 2.9.22, and everything works.
Host Kernel: Linux 5.19.9-Unraid x86_64
Same for me on Synology. Switch back to 2.9.22, it works!
Same for me on Synology DSM 6.2.4 Switch back to 2.9.22 works, but i can't log in to Dashboard. User/Password invalid Last Login on Sat 2023-03-25 with no Problems Was something changed in the database tables?
Same problem on Debian (Docker). 2.9.22 works and I can log into the dashboard without any issue.
same on synology, rollback to 2.9.22 fixed for now..
same on unraid rollback to 2.9.22 fixed it
Hi, the same for me, with debian bullseye on RPI3. also rollback to 2.9.22 fixed the issue.
For the s6-rc: fatal: timed out errors which is the main subject of this issue, I've put a fix up and it's available in the github-develop docker tag, can you please try that and let me know if you get further.
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service prepare: starting
❯ Configuring npmuser ...
id: 'npmuser': no such user
s6-rc: fatal: timed out
s6-sudoc: fatal: unable to get exit status from server: Operation timed out
/run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.
compose file
version: "3"
services:
app:
image: 'jc21/nginx-proxy-manager:github-develop'
restart: unless-stopped
ports:
# These ports are in format <host-port>:<container-port>
- '8093:80' # Public HTTP Port
- '8094:443' # Public HTTPS Port
- '8095:81' # Admin Web Port
on latest Synology DSM
@nitro424 pull and try again please?
Same issue for me on Synology with latest DSM.
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
Rollback to 2.9.22 resolved for now as well.
Same for debian 10 with docker, rollback to 2.9.22 fixed it.
@jc21 when I change the tag into github-develop in Portainer I get the following after updating (this is on Synology):
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service prepare: starting
❯ Configuring npmuser ...
id: 'npmuser': no such user
❯ Checking paths ...
❯ Setting ownership ...
❯ Dynamic resolvers ...
❯ IPv6 ...
Enabling IPV6 in hosts in: /etc/nginx/conf.d
s6-rc: fatal: timed out
s6-sudoc: fatal: unable to get exit status from server: Operation timed out
/run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.
- /etc/nginx/conf.d/default.conf
- /etc/nginx/conf.d/include/assets.conf
- /etc/nginx/conf.d/include/block-exploits.conf
- /etc/nginx/conf.d/include/force-ssl.conf
After a complete container restart I get:
- /etc/nginx/conf.d/default.conf
Enabling IPV6 in hosts in: /data/nginx
- /data/nginx/default_host/site.conf
- /data/nginx/proxy_host/4.conf
- /data/nginx/proxy_host/5.conf
- /data/nginx/proxy_host/3.conf
- /data/nginx/proxy_host/18.conf
- /data/nginx/proxy_host/6.conf
- /data/nginx/proxy_host/2.conf
- /data/nginx/proxy_host/17.conf
- /data/nginx/redirection_host/1.conf
❯ Docker secrets ...
-------------------------------------
_ _ ____ __ __
| \ | | _ \| \/ |
| \| | |_) | |\/| |
| |\ | __/| | | |
|_| \_|_| |_| |_|
-------------------------------------
User UID: 911
User GID: 911
-------------------------------------
s6-rc: info: service prepare successfully started
s6-rc: info: service nginx: starting
s6-rc: info: service frontend: starting
s6-rc: info: service backend: starting
s6-rc: info: service nginx successfully started
s6-rc: info: service backend successfully started
❯ Starting nginx ...
s6-rc: info: service frontend successfully started
❯ Starting backend ...
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
[3/28/2023] [7:59:11 AM] [Global ] › ℹ info Using Sqlite: /data/database.sqlite
[3/28/2023] [7:59:11 AM] [Global ] › ℹ info Creating a new JWT key pair...
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
In both situations I can't access any of my sites, when I go back to 2.9.22 everything is back to normal again.
~It looks like User UID/GID is giving some issues when you leave this setting alone in the config/env. variables.~ This is all I could test quickly, hope it helps!
@jicho Nothing has changed from the port number side of things, if 2.9.22 could start listening on that port previously then it should be fine for 2.10.0 to do so :/ Does port 81 work for the admin interface?
@jc21 When I change the tag back go github-develop in Portainer the first run breaks (just didn't start):
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service prepare: starting
❯ Configuring npmuser ...
id: 'npmuser': no such user
s6-rc: fatal: timed out
s6-sudoc: fatal: unable to get exit status from server: Operation timed out
/run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.
So after a restart I'm getting the nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied) error.
When I go to port 81 Safari is telling met that it can't connect.
It's the same when I do a stop / start in Portainer.
Logs are the same:
-------------------------------------
_ _ ____ __ __
| \ | | _ \| \/ |
| \| | |_) | |\/| |
| |\ | __/| | | |
|_| \_|_| |_| |_|
-------------------------------------
User UID: 911
User GID: 911
-------------------------------------
s6-rc: info: service prepare successfully started
s6-rc: info: service nginx: starting
s6-rc: info: service frontend: starting
s6-rc: info: service backend: starting
s6-rc: info: service frontend successfully started
s6-rc: info: service backend successfully started
s6-rc: info: service nginx successfully started
s6-rc: info: service legacy-services: starting
❯ Starting nginx ...
❯ Starting backend ...
s6-rc: info: service legacy-services successfully started
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
[3/28/2023] [9:27:40 AM] [Global ] › ℹ info Using Sqlite: /data/database.sqlite
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
[3/28/2023] [9:27:44 AM] [Migrate ] › ℹ info Current database version: none
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
[3/28/2023] [9:27:56 AM] [Setup ] › ℹ info Added Certbot plugins certbot-dns-cloudflare==$(certbot --version | grep -Eo '[0-9](\.[0-9]+)+') cloudflare
[3/28/2023] [9:27:56 AM] [Setup ] › ℹ info Logrotate Timer initialized
❯ Starting nginx ...
[3/28/2023] [9:27:56 AM] [Setup ] › ℹ info Logrotate completed.
[3/28/2023] [9:27:56 AM] [IP Ranges] › ℹ info Fetching IP Ranges from online services...
[3/28/2023] [9:27:56 AM] [IP Ranges] › ℹ info Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
[3/28/2023] [9:27:57 AM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v4
[3/28/2023] [9:27:57 AM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v6
❯ Starting nginx ...
[3/28/2023] [9:27:57 AM] [SSL ] › ℹ info Let's Encrypt Renewal Timer initialized
[3/28/2023] [9:27:57 AM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[3/28/2023] [9:27:57 AM] [IP Ranges] › ℹ info IP Ranges Renewal Timer initialized
[3/28/2023] [9:27:57 AM] [Global ] › ℹ info Backend PID 145 listening on port 3000 ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
[3/28/2023] [9:27:59 AM] [SSL ] › ✖ error Error: Command failed: /usr/sbin/nginx -t -g "error_log off;"
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] open() "/etc/nginx/nginx/off" failed (13: Permission denied)
nginx: configuration file /etc/nginx/nginx.conf test failed
at ChildProcess.exithandler (node:child_process:402:12)
at ChildProcess.emit (node:events:513:28)
at maybeClose (node:internal/child_process:1100:16)
at Socket.<anonymous> (node:internal/child_process:458:11)
at Socket.emit (node:events:513:28)
at Pipe.<anonymous> (node:net:301:12)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
❯ Starting nginx ...
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
Back to 2.9.22 (just a tag change) makes everything work again...
Okay... another test... I'm using the tag 2.10.0, the logs are the same. This time I removed my MacVLAN and kept the bridge connection.
I'm still getting nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
As soon as I'm back to 2.9.22 everything is back to normal :) Even when I connect my container to macvlan and bridge
The timeout error is gone. Still it is not able to boot up properly.
2023-03-28T08:24:55.769750465Z nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
2023-03-28T08:24:56.532663791Z [3/28/2023] [8:24:56 AM] [SSL ] › ✖ error Error: Command failed: /usr/sbin/nginx -t -g "error_log off;"
2023-03-28T08:24:56.532907348Z nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
2023-03-28T08:24:56.532960856Z nginx: [emerg] open() "/etc/nginx/nginx/off" failed (13: Permission denied)
2023-03-28T08:24:56.533005467Z nginx: configuration file /etc/nginx/nginx.conf test failed
2023-03-28T08:24:56.533048352Z
2023-03-28T08:24:56.533080728Z at ChildProcess.exithandler (node:child_process:402:12)
2023-03-28T08:24:56.533124390Z at ChildProcess.emit (node:events:513:28)
2023-03-28T08:24:56.533163685Z at maybeClose (node:internal/child_process:1100:16)
2023-03-28T08:24:56.533204859Z at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
2023-03-28T08:24:56.775782712Z ESC[1;34m❯ ESC[1;36mStarting nginx ...ESC[0m
2023-03-28T08:24:56.814696262Z nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
ps, netstat in container
[root@docker-00895864daf9:/app]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 208 64 ? Ss 08:24 0:00 /package/admin/s6/command/s6-svscan -d4 -- /run/service
root 15 0.0 0.0 208 60 ? S 08:24 0:00 s6-supervise s6-linux-init-shutdownd
root 21 0.0 0.0 196 0 ? Ss 08:24 0:00 /package/admin/s6-linux-init/command/s6-linux-init-shutdownd -c /run/s6/basedir -g 3000 -C -B
root 24 0.0 0.0 208 56 ? S 08:24 0:00 s6-supervise s6rc-oneshot-runner
root 25 0.0 0.0 208 48 ? S 08:24 0:00 s6-supervise s6rc-fdholder
root 26 0.0 0.0 208 48 ? S 08:24 0:00 s6-supervise backend
root 27 0.0 0.0 216 64 ? D 08:24 0:00 s6-supervise frontend
root 28 0.0 0.0 216 68 ? S 08:24 0:00 s6-supervise nginx
root 34 0.0 0.0 184 0 ? Ss 08:24 0:00 /package/admin/s6/command/s6-ipcserverd -1 -- /package/admin/s6/command/s6-ipcserver-access -v0 -E -l0 -i data
root 131 0.0 0.0 3732 2708 ? Ss 08:24 0:00 bash ./run backend
npmuser 138 0.0 0.0 3732 2744 ? S 08:24 0:00 bash -c export HOME=/tmp/npmuserhome;node --abort_on_uncaught_exception --max_old_space_size=250 index.js
npmuser 139 4.6 1.4 943272 87364 ? Sl 08:24 0:09 node --abort_on_uncaught_exception --max_old_space_size=250 index.js
root 1049 0.0 0.0 3996 3376 pts/0 Ss 08:26 0:00 bash
root 1739 0.0 0.0 0 0 ? Zs 08:27 0:00 [bash] <defunct>
root 1741 0.0 0.0 7636 2812 pts/0 R+ 08:27 0:00 ps aux
[root@docker-00895864daf9:/app]# netstat -altpn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.11:46569 0.0.0.0:* LISTEN -
tcp6 0 0 :::3000
I attached the full log file. nginxproxymanager-test-app-1-2023-03-28T08-25-43.log.gz
I am still using the minimal compose file https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2753#issuecomment-1486025390
More or less same error
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service prepare: starting
❯ Configuring npmuser ...
id: 'npmuser': no such user
❯ Checking paths ...
❯ Setting ownership ...
❯ Dynamic resolvers ...
❯ IPv6 ...
Enabling IPV6 in hosts in: /etc/nginx/conf.d
- /etc/nginx/conf.d/production.conf
- /etc/nginx/conf.d/default.conf
- /etc/nginx/conf.d/include/ip_ranges.conf
- /etc/nginx/conf.d/include/proxy.conf
- /etc/nginx/conf.d/include/force-ssl.conf
- /etc/nginx/conf.d/include/ssl-ciphers.conf
- /etc/nginx/conf.d/include/block-exploits.conf
- /etc/nginx/conf.d/include/assets.conf
- /etc/nginx/conf.d/include/letsencrypt-acme-challenge.conf
s6-sudoc: fatal: unable to get exit status from server: Operation timed out
s6-rc: warning: unable to start service prepare: command exited 111
/run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.