如若忘记 Nginx Proxy Manager(NPM)的登录账号和密码,可以通过重置密码来解决问题。该操作需要对NPM数据库进行修改。
以下方法均基于宿主机已挂载数据文件的恢复方法。
方法一:宿主机已挂载数据目录
首先,确认NPM容器在宿主机上配置了持久化存储。多数常见部署教程(例:通过Docker Compose部署)会将容器内的/data目录挂载到宿主机上。
1.定位数据库容器
在挂载到宿主机的数据目录中,找到SQLite数据库文件database.sqlite。该文件保存了NPM的用户账号等信息。
2.确认挂载路径
检查docker-compose.yml(或者相应编排文件),查看volumes部分,确认NPM的/data目录是否已经映射到宿主机的某个路径。
3.进入挂载目录执行下列指令
#更新安装目录,安装sqlite3
apt update && apt install sqlite3 -y
#在挂载目录下进行run:npm/data
#如果没有权限记得提权 sudo sqlite3 /data/database.sqlite
sqlite3 /data/database.sqlite
#更新数据库 将is_deleted设置为1
UPDATE user SET is_deleted=1;
#退出
.exit
#重启容器 不成功记得提权 sudo docker compose restart
docker compose restart
SET is_deleted=1
设置 is_deleted 字段的值为 1
通常 1 表示"已删除"或"已禁用"
0 通常表示"未删除"或"正常状态"
删除后,默认账密为
username:admin@example.com
Password: changeme
方法二:进入容器内部修改
docker exec -it <container-name> sh #npm容器名 进入npm容器
apt update && apt install sqlite3 -y
sqlite3 /data/database.sqlite
UPDATE user SET is_deleted=1;
.exit
docker compose restart