Dify 修改登录密码完整指南

以下是一份完整的 Dify 修改登录密码流程指南 ,涵盖两种场景:记得旧密码(自助修改)忘记密码(强制重置)


Dify 修改登录密码完整指南

适用环境:Dify 本地部署(Docker 方式)


一、前提条件

在开始之前,请确认:

  • Dify 服务正常运行(所有容器已启动)
  • 你有服务器的 Shell 访问权限(如 SSH 或本地终端)
  • 已安装 Docker 和 Docker Compose

二、方法一:记得旧密码(自助修改)

如果你记得当前密码,直接在 Web 界面中修改即可:

  1. 登录 Dify Web 界面(http://localhost 或你的服务器 IP)。
  2. 点击右上角头像 → 「个人资料」「账户设置」
  3. 找到 「修改密码」「密码」 选项。
  4. 依次输入 当前密码新密码确认新密码
  5. 点击 「保存」

✅ 完成。


三、方法二:忘记密码(强制重置)

如果你忘记了密码,需要通过命令行进入后端容器重置。

第一步:查看运行中的容器

在宿主机终端执行:

bash 复制代码
docker ps

确认以下关键容器正在运行:

容器名 作用
docker-api-1 后端 API 服务(重置密码需进入此容器
docker-web-1 Web 前端服务
docker-db_postgres-1 数据库

💡 重要 :重置密码的操作必须在 docker-api-1 容器中执行,而不是 docker-web-1

第二步:进入后端 API 容器

bash 复制代码
docker exec -it docker-api-1 /bin/bash

如果容器没有 /bin/bash,可以尝试 /bin/sh,但 Dify API 容器通常包含 bash

第三步:执行密码重置命令

进入容器后,确认当前目录在 /app/api(默认就是),执行:

bash 复制代码
flask reset-password

系统会交互式提示输入邮箱和新密码:

复制代码
Enter email: admin@your-domain.com
Enter new password: ********
Repeat for confirmation: ********
Password reset successfully.
🔧 备选命令

如果 flask 命令找不到(环境变量问题),可以尝试:

bash 复制代码
# 方式一:使用 poetry
poetry run flask reset-password

# 方式二:激活虚拟环境后执行
source /app/api/.venv/bin/activate
flask reset-password
📧 指定邮箱(免交互)

如果你想直接在命令中指定邮箱:

bash 复制代码
flask reset-password --email admin@your-domain.com

然后按提示输入新密码两次即可。

第四步:退出容器并验证

  1. 重置成功后,输入 exit 退出容器。
  2. 打开浏览器访问 Dify 登录页(http://localhost)。
  3. 使用你刚刚设置的新密码登录。

✅ 完成。

四、常见问题排查

1. 不知道自己的邮箱是什么?

如果你忘记了之前注册时用的邮箱,可以进入数据库查看:

bash 复制代码
docker exec -it docker-db_postgres-1 psql -U postgres -d dify -c "SELECT email FROM users;"

这会列出所有已注册用户的邮箱。然后用查到的邮箱去重置密码。

2. 进入容器后提示 flask: command not found

这是环境变量未正确加载导致的,按以下步骤解决:

bash 复制代码
# 先进入容器
docker exec -it docker-api-1 /bin/bash

# 切换到应用目录
cd /app/api

# 激活虚拟环境
source .venv/bin/activate

# 再执行重置命令
flask reset-password

3. 容器内没有 /bin/bash

部分容器镜像只包含 sh。可以改用:

bash 复制代码
docker exec -it docker-api-1 /bin/sh

然后进入后执行 python -m flask reset-password(需要 Python 环境)。

4. 无法进入容器(权限不足)

可以尝试以 root 身份进入:

bash 复制代码
docker exec -it -u root docker-api-1 /bin/bash

五、方法三:通过数据库直接修改(不推荐)

⚠️ 此方式风险较高,仅在前两种方法均失败时作为最后手段。

Dify 的密码是加密存储的,直接修改数据库需要生成加密哈希。不推荐普通用户操作,如果确实需要,建议优先使用方法二。

六、安全建议

  1. 首次登录后立即修改默认密码:如果是刚部署完,尽快在系统设置中修改管理员密码。
  2. 使用强密码:建议包含大小写字母、数字和特殊字符,长度不少于 8 位。
  3. 定期更换密码:建议每 3-6 个月更换一次。
  4. 备份账号信息:将管理员邮箱和密码妥善保存在密码管理工具中。

七、总结

场景 操作路径
记得旧密码 Web 界面 → 个人资料 → 修改密码
忘记密码 docker exec -it docker-api-1 /bin/bashflask reset-password
不知邮箱 进入 PostgreSQL 查询 users 表获取邮箱

快速命令汇总

bash 复制代码
# 1. 查看容器状态
docker ps

# 2. 进入后端 API 容器
docker exec -it docker-api-1 /bin/bash

# 3. 重置密码(在容器内)
flask reset-password

# 4. 查看所有用户邮箱(备选,需进入数据库容器)
docker exec -it docker-db_postgres-1 psql -U postgres -d dify -c "SELECT email FROM users;"

这样不管是你自己还是团队成员,都能根据这份指南快速找回或修改 Dify 的登录密码。如果有任何操作遇到问题,欢迎随时截图来问。😊