侧边栏壁纸
  • 累计撰写 9 篇文章
  • 累计创建 3 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Vaultwarden 升级后无法登录:1Panel Docker 挂载路径变更问题

Administrator
2026-05-13 / 0 评论 / 0 点赞 / 1 阅读 / 0 字

问题描述

近日将 Vaultwarden 升级后,发现无法登录,提示"无效的主密码"。但确认邮箱地址和密码都正确,且账户确实是在该服务器上创建的。

排查过程

1. 检查日志

查看 Vaultwarden 容器日志,发现大量如下错误:

Username or password is incorrect. Try again.
Error decoding JWT: Error(InvalidSignature)
Token is invalid

同时注意到 POST /identity/accounts/prelogin/password => 200 OK,说明新版客户端请求的端点已经支持。

2. 检查数据文件

进入服务器检查数据目录:

cd /home/data/bitwarden/data
ls -la db.sqlite3

发现数据库文件存在且大小正常,但修改时间停留在升级前。

3. 发现根本原因

检查当前容器的挂载路径:

docker inspect bitwarden --format='{{range .Mounts}}{{.Source}} -> {{.Destination}}\n{{end}}'

发现 1Panel 升级应用后,数据卷路径从原来的:

  • /home/data/bitwarden/data

变成了:

  • /home/app/1panel/1panel/apps/bitwarden/bitwarden/data

容器实际读取的是新路径下的空目录,导致所有用户数据"消失",密码验证自然失败。

解决方案

将 Docker 容器的挂载路径修改回原来的数据目录:

# 编辑 docker-compose.yml 或 1Panel 应用配置
# 将 volumes 中的挂载路径从:
#   - /home/app/1panel/1panel/apps/bitwarden/bitwarden/data:/data
# 改回:
#   - /home/data/bitwarden/data:/data

# 重启容器
docker-compose down
docker-compose up -d

验证结果

修改挂载路径后,容器能正确读取原有数据库,登录恢复正常。所有密码库数据完好无损。

经验总结

1. 1Panel 升级的风险

1Panel 的应用商店升级机制会重新生成 docker-compose 配置,可能导致:

  • 数据卷路径变更
  • 环境变量重置(如 JWT_SECRETADMIN_TOKEN
  • 端口映射变化

2. 升级前必做检查清单

  • 备份数据目录(db.sqlite3 及附件)
  • 记录当前环境变量(特别是 JWT_SECRETADMIN_TOKEN
  • 截图或记录当前的挂载路径配置
  • 确认升级后的配置与升级前一致

3. 建议的环境变量配置

在 docker-compose.yml 中显式设置以下环境变量,避免升级后密钥随机变化:

environment:
  - ADMIN_TOKEN=your-fixed-admin-token
  - JWT_SECRET=your-fixed-jwt-secret
  - SIGNUPS_ALLOWED=false

4. 数据目录建议

建议将 Vaultwarden 数据目录放在独立于 1Panel 应用目录的位置,如 /home/data/bitwarden/data,避免被 1Panel 升级机制影响。

相关错误参考

如果升级后确实遇到密码验证失败且数据目录正确,可能是 JWT_SECRET 变化导致。此时需要:

  1. 在 docker-compose.yml 中固定 JWT_SECRET
  2. 清除数据库中的设备记录(DELETE FROM devices;
  3. 重新登录生成新的 JWT token

本文记录了一次 Vaultwarden 升级后的故障排查过程,希望能帮助遇到类似问题的用户快速定位。

博主关闭了所有页面的评论