如若忘记 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  

 

参考文献

1.How to reset the login password

2.How to reset password for web GUI