addon-nginx-proxy-manager
addon-nginx-proxy-manager copied to clipboard
Configuration blank in web administration
Hi Frenck, It's like the addon reset itself...
It tried to connect with my normal credentials, and it failed. I the used [email protected] / changeme and it worked...
My configuration in the web administration is blanked but my old confiuration is still present in mariadb and works as intended...
Is it possible to re-link the web administration to the mariadb configuration ?
Thank you for your hard work, best regards,
I reinstalled it and the configuration came back.
Best regards !
Please reopen this, as I am having the same issue but reinstalling did not resolve it.
I'm having the same issue. I have not tried to uninstall the add on and re-install because I don't want to risk making the problem worse.
As 2 people have the same problem, I reopen this case.
Same issue. It went to sqlite from mariadb.
[01:16:30] INFO: Starting the Manager...
[01:16:30] INFO: Starting NGinx...
[8/17/2022] [1:16:31 AM] [Global ] › ℹ info No valid environment variables for database provided, using default SQLite file '/data/database.sqlite'
[8/17/2022] [1:16:31 AM] [Global ] › ℹ info Generating SQLite knex configuration
The issue is also duplicated here, with better logs. https://github.com/hassio-addons/addon-nginx-proxy-manager/issues/348
Same thing happened to me. I was surprised to see everything else (proxy hosts, SSL certs) still working as expected as creredentials are reset and the web UI is blank. Is there anything we can do to help debugging?
Hello, same: No valid environment variables for database provided, using default SQLite My maria-db addon is up and working, nginx is still working but i cannot login
The solution I found was to reinstall the nginx proxy manager addon. Your current config should still be saved in mariadb addon. as @q1t1 suggested earlier
I did have to muck around with the proxy host address after reinstall to get it to find my local hostname again. I had mypihostname.local set. I was getting sent to a HA loading page with a 60sec retry timer. I set my local host back to IP number and clicked the external link from proxy hosts page. I swtiched it back mypihostname.local after that and it worked fine.
[11:44:43] INFO: Starting NGinx...
[8/21/2022] [11:44:44 AM] [Global ] › ℹ info Manual db configuration already exists, skipping config creation from environment variables
The solution I found was to reinstall the nginx proxy manager addon. Your current config should still be saved in mariadb addon. as @q1t1 suggested earlier
I did have to muck around with the proxy host address after reinstall to get it to find my local hostname again. I had mypihostname.local set. I was getting sent to a HA loading page with a 60sec retry timer. I set my local host back to IP number and clicked the external link from proxy hosts page. I swtiched it back mypihostname.local after that and it worked fine.
[11:44:43] INFO: Starting NGinx... [8/21/2022] [11:44:44 AM] [Global ] › ℹ info Manual db configuration already exists, skipping config creation from environment variables
I tried that like 2 days ago, it works but after nginx update... Again it started to use the sqllite db.
@frenck any idea what could be the issue ? Why this addon is not able to see mariadb and fallback on sqlite ?
I've had to delete my 'nginxproxymanager' MySQL database and start again from scratch. Nothing else worked for me.
There is a commit (https://github.com/NginxProxyManager/nginx-proxy-manager/commit/ffe3db8c083a5a9a1f2ef4ce4308b17b254020b8) which could be related: it introduced the SQLite fallback and was introduced in Nginx Proxy Manager 2.9.12 (Add-on version 0.12.0).
The question is: Why does it fallback (as in, what is wrong with SQL).
Can you point us to the code where the SQL config is being injected/set? When checking the env vars in the container, there is no SQL config (though I am not sure if it should be there).
root@***-nginxproxymanager:/$ env
PYTHONUNBUFFERED=1
S6_BEHAVIOUR_IF_STAGE2_FAILS=2
CHARSET=UTF-8
HOSTNAME=***-nginxproxymanager
S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0
PWD=/
CARGO_NET_GIT_FETCH_WITH_CLI=true
YARN_HTTP_TIMEOUT=1000000
TZ=Europe/Berlin
HOME=/root
LANG=C.UTF-8
PIP_PREFER_BINARY=1
HASSIO_TOKEN=******
TERM=xterm-256color
PIP_DISABLE_PIP_VERSION_CHECK=1
SUPERVISOR_TOKEN=******
SHLVL=1
PYTHONDONTWRITEBYTECODE=1
PS1=$(whoami)@$(hostname):$(pwd)$
PIP_FIND_LINKS=https://wheels.home-assistant.io/musllinux/
LC_COLLATE=C
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
S6_CMD_WAIT_FOR_SERVICES=1
PIP_NO_CACHE_DIR=1
_=/usr/bin/env
It doesn't use environment variables.
Ref: https://github.com/hassio-addons/addon-nginx-proxy-manager/blob/main/proxy-manager/rootfs/etc/cont-init.d/npm.sh#L121-L136
Thx for the link. At least in the running container this information is not present.
$ cat /data/manager/production.json
{
"database": {
"fromEnv": true,
"engine": "knex-native",
"knex": {
"client": "sqlite3",
"connection": {
"filename": "/data/database.sqlite"
},
"useNullAsDefault": true
}
},
"jwt": {***}
}
It might have been overwritten on startup though (see logs above).
So, what I don't understand is: Why I don't have this issue? As in, I run this thing on multiple machines (including different test setups; I always test releases before shipping them).
This sounds like something fundamentally wrong, but... I don't see it?
(PS: will not respond for a bit, time enjoy my last hour of my Sunday for a bit with a beer 😉 )
I can't tell at the moment. It must be this check failing for us:
https://github.com/NginxProxyManager/nginx-proxy-manager/blob/1f3ac7a9ec80ec49a1c13ebcc46ab3f48ae026f4/backend/index.js#L63-L67
Will try looking further into it in the next days. Fooling around with the proxy is always a bit messy as some of my systems rely on it working...
Enjoy your beer, you deserve it! 🍻
Maybe it’s to do with Maria DB and not your add on?
I had issue with an extension of mine that is using mariadb and was not able to connect to it but after restoring the extension... It works and still working until now so not sure if it's nginx or maria :/
Some additional parts of the log from my earlier post(not sure why it's renewing so much, although I probably have old certs hiding) and then a reboot log. Doesn't really provide much insight.
Also had this in mariadb logs
[12:30:18] INFO: MariaDB tables unlocked.
2022-08-21 20:08:13 45 [Warning] Aborted connection 45 to db: 'nginxproxymanager' user: 'service' host: '172.30.33.6' (Got timeout reading communication packets)
Updated log
[8/21/2022] [11:56:55 AM] [Setup ] › ℹ info Logrotate completed.
[8/21/2022] [11:56:55 AM] [IP Ranges] › ℹ info Fetching IP Ranges from online services...
[8/21/2022] [11:56:55 AM] [IP Ranges] › ℹ info Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
[8/21/2022] [11:56:55 AM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v4
[8/21/2022] [11:56:55 AM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v6
[8/21/2022] [11:56:55 AM] [SSL ] › ℹ info Let's Encrypt Renewal Timer initialized
[8/21/2022] [11:56:55 AM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/21/2022] [11:56:55 AM] [IP Ranges] › ℹ info IP Ranges Renewal Timer initialized
[8/21/2022] [11:56:55 AM] [Global ] › ℹ info Backend PID 263 listening on port 3000 ...
[8/21/2022] [11:57:03 AM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [11:57:03 AM] [SSL ] › ℹ info Renew Complete
`QueryBuilder#allowEager` method is deprecated. You should use `allowGraph` instead. `allowEager` method will be removed in 3.0
`QueryBuilder#eager` method is deprecated. You should use the `withGraphFetched` method instead. `eager` method will be removed in 3.0
QueryBuilder#omit is deprecated. This method will be removed in version 3.0
Model#$omit is deprected and will be removed in 3.0.
Duplicate relation "access_list" in a relation expression. You should use "a.[b, c]" instead of "[a.b, a.c]". This will cause an error in objection 2.0
[8/21/2022] [12:04:45 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [12:05:10 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [12:05:28 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [12:56:55 PM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/21/2022] [12:57:01 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [12:57:01 PM] [SSL ] › ℹ info Renew Complete
[8/21/2022] [1:56:55 PM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/21/2022] [1:57:00 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [1:57:00 PM] [SSL ] › ℹ info Renew Complete
[8/21/2022] [2:56:55 PM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/21/2022] [2:57:00 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [2:57:00 PM] [SSL ] › ℹ info Renew Complete
[8/21/2022] [3:56:55 PM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/21/2022] [3:57:00 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [3:57:00 PM] [SSL ] › ℹ info Renew Complete
[8/21/2022] [4:56:55 PM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/21/2022] [4:57:01 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [4:57:01 PM] [SSL ] › ℹ info Renew Complete
[8/21/2022] [5:56:55 PM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/21/2022] [5:56:55 PM] [IP Ranges] › ℹ info Fetching IP Ranges from online services...
[8/21/2022] [5:56:55 PM] [IP Ranges] › ℹ info Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
[8/21/2022] [5:56:56 PM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v4
[8/21/2022] [5:56:56 PM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v6
[8/21/2022] [5:56:56 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [5:57:00 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [5:57:00 PM] [SSL ] › ℹ info Renew Complete
[8/21/2022] [6:56:55 PM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/21/2022] [6:57:01 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [6:57:01 PM] [SSL ] › ℹ info Renew Complete
[8/21/2022] [7:56:55 PM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/21/2022] [7:57:01 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [7:57:01 PM] [SSL ] › ℹ info Renew Complete
[8/21/2022] [8:56:55 PM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/21/2022] [8:57:00 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [8:57:00 PM] [SSL ] › ℹ info Renew Complete
[8/21/2022] [9:56:55 PM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/21/2022] [9:57:01 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [9:57:01 PM] [SSL ] › ℹ info Renew Complete
[8/21/2022] [10:56:55 PM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/21/2022] [10:57:01 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [10:57:01 PM] [SSL ] › ℹ info Renew Complete
[8/21/2022] [11:56:55 PM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/21/2022] [11:56:55 PM] [IP Ranges] › ℹ info Fetching IP Ranges from online services...
[8/21/2022] [11:56:55 PM] [IP Ranges] › ℹ info Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
[8/21/2022] [11:56:56 PM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v4
[8/21/2022] [11:56:56 PM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v6
[8/21/2022] [11:56:56 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [11:57:02 PM] [Nginx ] › ℹ info Reloading Nginx
[8/21/2022] [11:57:02 PM] [SSL ] › ℹ info Renew Complete
[8/22/2022] [12:56:55 AM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/22/2022] [12:57:00 AM] [Nginx ] › ℹ info Reloading Nginx
[8/22/2022] [12:57:00 AM] [SSL ] › ℹ info Renew Complete
[8/22/2022] [1:56:55 AM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/22/2022] [1:57:00 AM] [Nginx ] › ℹ info Reloading Nginx
[8/22/2022] [1:57:00 AM] [SSL ] › ℹ info Renew Complete
[8/22/2022] [2:56:55 AM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/22/2022] [2:57:01 AM] [Nginx ] › ℹ info Reloading Nginx
[8/22/2022] [2:57:01 AM] [SSL ] › ℹ info Renew Complete
[8/22/2022] [3:56:55 AM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/22/2022] [3:57:00 AM] [Nginx ] › ℹ info Reloading Nginx
[8/22/2022] [3:57:00 AM] [SSL ] › ℹ info Renew Complete
[8/22/2022] [4:56:55 AM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/22/2022] [4:57:01 AM] [Nginx ] › ℹ info Reloading Nginx
[8/22/2022] [4:57:01 AM] [SSL ] › ℹ info Renew Complete
[8/22/2022] [5:56:55 AM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/22/2022] [5:56:55 AM] [IP Ranges] › ℹ info Fetching IP Ranges from online services...
[8/22/2022] [5:56:55 AM] [IP Ranges] › ℹ info Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
[8/22/2022] [5:56:56 AM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v4
[8/22/2022] [5:56:56 AM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v6
[8/22/2022] [5:56:56 AM] [Nginx ] › ℹ info Reloading Nginx
[8/22/2022] [5:57:00 AM] [Nginx ] › ℹ info Reloading Nginx
[8/22/2022] [5:57:01 AM] [SSL ] › ℹ info Renew Complete
[8/22/2022] [6:56:55 AM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/22/2022] [6:57:01 AM] [Nginx ] › ℹ info Reloading Nginx
[8/22/2022] [6:57:01 AM] [SSL ] › ℹ info Renew Complete
[8/22/2022] [7:56:55 AM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/22/2022] [7:57:00 AM] [Nginx ] › ℹ info Reloading Nginx
[8/22/2022] [7:57:00 AM] [SSL ] › ℹ info Renew Complete
[8/22/2022] [8:56:55 AM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/22/2022] [8:57:00 AM] [Nginx ] › ℹ info Reloading Nginx
[8/22/2022] [8:57:01 AM] [SSL ] › ℹ info Renew Complete
[8/22/2022] [9:56:55 AM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/22/2022] [9:57:01 AM] [Nginx ] › ℹ info Reloading Nginx
[8/22/2022] [9:57:01 AM] [SSL ] › ℹ info Renew Complete
Fresh reboot logs
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
cont-init: info: running /etc/cont-init.d/00-banner.sh
-----------------------------------------------------------
Add-on: Nginx Proxy Manager
Manage Nginx proxy hosts with a simple, powerful interface
-----------------------------------------------------------
Add-on version: 0.12.2
You are running the latest version of this add-on.
System: Debian GNU/Linux 11 (bullseye) (aarch64 / raspberrypi4-64)
Home Assistant Core: 2022.8.6
Home Assistant Supervisor: 2022.08.3
-----------------------------------------------------------
Please, share the above information when looking for help
or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
cont-init: info: /etc/cont-init.d/00-banner.sh exited 0
cont-init: info: running /etc/cont-init.d/01-log-level.sh
cont-init: info: /etc/cont-init.d/01-log-level.sh exited 0
cont-init: info: running /etc/cont-init.d/mysql.sh
cont-init: info: /etc/cont-init.d/mysql.sh exited 0
cont-init: info: running /etc/cont-init.d/nginx.sh
cont-init: info: /etc/cont-init.d/nginx.sh exited 0
cont-init: info: running /etc/cont-init.d/npm.sh
cont-init: info: /etc/cont-init.d/npm.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun manager (no readiness notification)
services-up: info: copying legacy longrun nginx (no readiness notification)
[10:42:47] INFO: Starting the Manager...
[10:42:47] INFO: Starting NGinx...
s6-rc: info: service legacy-services successfully started
[8/22/2022] [10:43:01 AM] [Global ] › ℹ info Manual db configuration already exists, skipping config creation from environment variables
[8/22/2022] [10:43:07 AM] [Migrate ] › ℹ info Current database version: 20211108145214
[8/22/2022] [10:43:07 AM] [Setup ] › ℹ info Logrotate Timer initialized
[8/22/2022] [10:43:07 AM] [Setup ] › ℹ info Logrotate completed.
[8/22/2022] [10:43:07 AM] [IP Ranges] › ℹ info Fetching IP Ranges from online services...
[8/22/2022] [10:43:07 AM] [IP Ranges] › ℹ info Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
[8/22/2022] [10:43:08 AM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v4
[8/22/2022] [10:43:08 AM] [IP Ranges] › ℹ info Fetching https://www.cloudflare.com/ips-v6
[8/22/2022] [10:43:08 AM] [SSL ] › ℹ info Let's Encrypt Renewal Timer initialized
[8/22/2022] [10:43:08 AM] [SSL ] › ℹ info Renewing SSL certs close to expiry...
[8/22/2022] [10:43:08 AM] [IP Ranges] › ℹ info IP Ranges Renewal Timer initialized
[8/22/2022] [10:43:08 AM] [Global ] › ℹ info Backend PID 260 listening on port 3000 ...
[8/22/2022] [10:43:15 AM] [Nginx ] › ℹ info Reloading Nginx
[8/22/2022] [10:43:15 AM] [SSL ] › ℹ info Renew Complete
I reinstalled it and the configuration came back.
Best regards !
Thany you very much for this! I have tried multiple snapshot restore from nginx and mariadb, only reinstall of nginx worked!
But after host reboot, I had to reinstall again nginx. Something weird is with mariadb or nginx
Yes very wierd. Lost access. Reinstalling the addon doesn't completely work as then I needed to remove and re-add letsencrypt ssl config to get it to work again as it thinks it already had the certs.
I just did this yesterday as well. :( reboot and lost access to NPM again.
btw, it is a REBOOT and not a 'HA RESTART' that causes this I believe.
well. This is how you restore access:
docker exec -it addon_a0d7b954_nginxproxymanager cp /defaults/production.json /data/manager/
and then restart the addon.
The one thing that still puzzles me the most: why is the proxy itself still working? Other than the login and Web UI, everything under the hood is doing its thing as always. This very page is served by Nginx Proxy Manager - if I stop the plugin, the page is no longer available.
Same for my HomeAssistant in the first browser tab at https://hassio.xxxxxxx.org/
Edit:
Understanding a bit more here... The "working part" is coming from configurations injected via the volume mount /usr/share/hassio/addons/data/a0d7b954_nginxproxymanager:/data
. E.g. my HomeAssistant is served by /data/nginx/proxy_host/1.conf
. So the pure Nginx configuration is still present, even though it is not managed by Nginx Proxy Manager and the settings stored in MariaDB currently.
The one thing that still puzzles me the most: why is the proxy itself still working? Other than the login and Web UI, everything under the hood is doing its thing as always. This very page is served by Nginx Proxy Manager - if I stop the plugin, the page is no longer available.
Same for my HomeAssistant in the first browser tab at https://hassio.xxxxxxx.org/
Edit:
Understanding a bit more here... The "working part" is coming from configurations injected via the volume mount
/usr/share/hassio/addons/data/a0d7b954_nginxproxymanager:/data
. E.g. my HomeAssistant is served by/data/nginx/proxy_host/1.conf
. So the pure Nginx configuration is still present, even though it is not managed by Nginx Proxy Manager and the settings stored in MariaDB currently.
How to get data from mariadb? I want move data to nginx in docker to another machine
Its almost like on a reboot its not able to connect to mariadb initially (mariadb isn't up and ready yet?) and then it fails, creates a local config for sqllite and then keeps using that. Could it simply be that mariadb isn't quite 'ready' on a reboot?
How to get data from mariadb? I want move data to nginx in docker to another machine
This doesn't seem relevant to the current issue.
How to get data from mariadb? I want move data to nginx in docker to another machine
Not really relevant here, but just add a user in the MariaDB add-on config (login with username
and password
, rights with username
and database
) and connect your favorite SQL client to <ha host>:3306
.