密码 · API 密钥更改
Studio 所用的 DB 账户和 AI 密钥在所有安装中的初始值都相同。在调试阶段改一次,然后就完成了。 之后无需再动。
更改工具只有一个 bin/passwd.sh。platform · ai · studio 三个产品都用相同的名称、相同的用法配备它。
/etc/kopens/plantpulse-studio.env 一个此产品的密钥位于 /etc/kopens/plantpulse-studio.env。不在安装目录(/opt/kopens/plantpulse-studio-docker)里,而是在 repo 树之外,权限为 0600。
安装目录根目录下的 .env 是旧路径。现在没人读它 — 改这里也改不了堆栈。
2026-08-16 之前,passwd.sh写入 /etc/kopens/plantpulse-studio.env,但 compose 和其他脚本都读取 repo 根目录下的 .env。所以轮转无声地无效,passwd.sh 说成功了,但堆栈依然用旧值运行(ANTHROPIC_API_KEY · AI_API_KEY 就处于那种状态)。不要再写旧路径。
应用登录账户不在本文档范围内
不要混淆两种情况。
| 内容 | 在哪里更改 | |
|---|---|---|
| 应用登录账户 | 人员登录 Studio 的账户 | 应用内的配置 → 用户管理 |
| 基础设施 · API 密钥 | 捆绑 PostgreSQL 账户、AI 密钥 | 本文档 — bin/passwd.sh |
.env 改应用账户 — 会变成死值Studio 服务器登录时按①DB → ②环境变量的顺序查看。如果 DB 里找到账户就在那里结束,所以之后改 env 里的 STUDIO_LOCAL_USERS 也没有任何效果。
应用账户要在配置 → 用户管理中创建、分配角色、重置密码。详见配置(管理员)中的用户管理小节。来源为 환경변수 的账户无法在界面上修改·删除。
引导账户(STUDIO_LOCAL_USERS)是首次进入的临时手段。运营账户准备好后要清空并重启。
可以改什么
先看列表。不带参数运行也一样。
cd /opt/kopens/plantpulse-studio-docker
bin/passwd.sh --list
密钥 · ID · 当前值(仅前 3 个字符)· 目标 · 该值在何处会一起显示。
要看完整值,用 --list --show。
| 密钥 | 内容 | 如何改变 |
|---|---|---|
PG_PASSWORD | 捆绑 PostgreSQL | 服务器账户是规范出处 — ALTER ROLE (psql) |
ANTHROPIC_API_KEY | Anthropic API 密钥 | 文件 — agent-server 启动时加载 |
AI_API_KEY | OpenAI 兼容 API 密钥 | 文件 — agent-server 启动时加载 |
密钥名称就是环境变量名称。 没有 postgres 这样的别名 — 如果有别名,就得单独维护一张名称和变量的对应表,而那张表必然总是和实际不符。
PG_PASSWORD 是正常的PG_PASSWORD 仅在启动捆绑 PostgreSQL 的安装上由本产品所有(COMPOSE_PROFILES 时有 bundled-pg)。如果使用平台·公用 PG 的安装,那个密码是别人的,所以从列表中遗漏,转而告知这一事实。
平台的 PP_* 也不在这里。遗漏它会被拒绝,和拼写错误一样。
更改
建议的做法是省略值,通过提示符输入。 密码不会在 ps 输出或 shell 历史中留下。会要求输入两次,验证是否一致。
bin/passwd.sh PG_PASSWORD
也可以直接作为参数给出值。
bin/passwd.sh ANTHROPIC_API_KEY=<new-value>
一次传入多个会将重启合并为 1 次。 在调试时用这种形式。
bin/passwd.sh PG_PASSWORD=<new-password> ANTHROPIC_API_KEY=<new-value>
如果只想看要改什么,不想动任何东西,用 --dry-run。
bin/passwd.sh --dry-run PG_PASSWORD=<new-password>
运行后会先显示要改的项目和影响,然后用 [y/N] 确认。要在自动化中跳过确认,用 --yes。
在脚本·cron 这样没有终端的环境中省略值,会因为无法显示提示符而报错。此时要用 KEY=<value> 格式传入。
执行时会发生什么
顺序是固定的。
| 顺序 | 做的事 |
|---|---|
| 1 | 先从服务器账户是规范出处开始 — 如果 PG_PASSWORD,会先在 PostgreSQL 内改账户 |
| 2 | 用新值更新 /etc/kopens/plantpulse-studio.env(保留权限 0600) |
| 3 | docker compose up -d --wait — 重建容器,装入新值 |
先改服务器端,再对齐文件的顺序。反过来的话服务器是旧值,文件是新值,重启前会一直连接中断。
这期间 Studio 连接会断开。 在维护窗口进行。
中途失败时
| 发生在 | 状态 | 处理方法 |
|---|---|---|
| 1 阶段(PostgreSQL 账户更改) | 文件未触及,中止 | 用 bin/status.sh 确认捆绑 PG 是否运行,然后重新执行 |
| 3 阶段(重启) | 文件已是新值 | 用 bin/status.sh 确认状态,处理启动失败原因 |
PG_PASSWORD在捆绑模式下只改文件里的 PG_PASSWORD,会和既有数据目录的账户不符,堆栈无法启动。passwd.sh 先改服务器账户的原因就在这里。
确认
bin/passwd.sh --list
如果当前值的前 3 个字符变了,就是已反映了。保留前 3 个字符是为了一眼看清初始值是否还在。