环境变量参考
Studio 服务器读取的全部环境变量。与屏幕(环境设置)中修改的值不同, 这里的值需要修改文件并重启才能生效。
正本位置是 /etc/kopens/plantpulse-studio.env
/etc/kopens/plantpulse-studio.env
.env 不再被读取即使在旧路径(安装目录的 .env)中放置值,也不会生效。 如果旧文件仍然存在,
脚本会通知您。修改值时请使用上面的正本路径。
权限设置为 chmod 600 — 这是包含 API 密钥的文件。
镜像和版本
| 变量 | 默认值 | 说明 |
|---|---|---|
REGISTRY | docker.kopens.io/ps | 拉取镜像的注册表。留空时仅使用本地标签(自行构建的情况) |
TAG | (空值) | 镜像标签 |
AGENT_SERVER_TAG | 因安装版本而异 | Agent 服务器镜像标签 |
TAG 留空留空时 bin/start.sh 将使用 VERSION 文件中的版本 自动跟踪每个发布。
如果手动填写月份,该值会被固定 — 实际上这样做过导致启动了一个月前的镜像。
要固定到特定发布时间点,请使用快照标签 — 例如: TAG=2026.08-20260810。
区域设置和时区
与 Platform 和 Edge 使用相同的变量名。
| 变量 | 默认值 | 说明 |
|---|---|---|
PP_LANG | en | 网页默认语言(ko / en)。浏览器保存的值优先 |
PP_TZ | Asia/Seoul | IANA 时区 ID。"今天 / 昨天"等相对时间的解释基准 |
如果是韩国现场,请设置为 PP_LANG=ko。
数据存储位置
| 变量 | 默认值 | 说明 |
|---|---|---|
DATA_ROOT | /var/lib/pp-studio | 工作区·构建产出物·状态·捆绑 PG 数据全部存储在此路径下 |
备份对象就是这个路径 → 备份和恢复。
数据库 — 二选一
(a) 捆绑 PostgreSQL (默认) — Studio 会启动自己的 PG 容器。
| 变量 | 默认值 |
|---|---|
COMPOSE_PROFILES | bundled-pg |
PG_DB | ppstudio |
PG_USER | ppstudio |
PG_PASSWORD | change-me-please — 必须修改 |
(b) 共用 PostgreSQL — 与 Platform PG 共用(消除双重基础设施)。
删除 COMPOSE_PROFILES 一行,只指定连接地址。
| 变量 | 示例 |
|---|---|
DATABASE_URL | postgres://<user>:<password>@<db-host>:5432/ps |
捆绑 PG 在首次启动创建数据目录时会初始化账户。之后如果只修改 PG_PASSWORD,
数据库内的账户会不一致导致栈启动失败。 要修改密码,应先在 PostgreSQL 内修改账户密码 —
密码 · API 密钥变更 的 passwd.sh 会自动完成这个流程。
Platform 集成
| 变量 | 示例 | 说明 |
|---|---|---|
PLATFORM_API_TARGET | https://192.168.0.41 | 用于实时数据查询和登录认证委派的 Platform 地址 |
应用监听器 (预览 · 部署应用)
| 变量 | 默认值 | 说明 |
|---|---|---|
APPS_PORT | 5171 | 提供预览和已部署应用的独立监听器端口 |
- 直接通过端口访问的安装 — 需要在防火墙中开放此端口以支持预览·部署应用·二维码访问。
- 反向代理后 — 无需开放。代理会将同一域名的
/container·/preview·/apps转发到此监听器 → 域名和反向代理。
APPS_ORIGIN)已移除已于 2026-08-23 移除。该值为空时预览 URL 会落至 요청호스트:5171,
在仅公开 80/443 的配置中导致实时预览完全失效。 现在客户端仅使用相对路径。
AI 提供商
此处的值是初始值。在屏幕(环境设置 → AI)中填入的值会覆盖此值。
| 变量 | 默认值 | 说明 |
|---|---|---|
AI_PROVIDER | openai-compatible | 留空时始终为 openai-compatible |
AI_BASE_URL | (空值) | 网关地址。无默认值 |
AI_MODEL | gpt-4o | 模型名称 |
AI_API_KEY | (空值) | OpenAI 兼容密钥 |
ANTHROPIC_API_KEY | (空值) | 仅在使用云 Claude 时填写 |
AI_BASE_URL 不设置合理默认值的原因如果网关不在该主机上,聊天会完全fetch failed,而值看起来很合理时
排查原因会很困难。 请填写实际地址。保存前可在环境设置 → AI 标签页使用
连接测试验证填写的值是否正确 → 环境设置(管理员)。
早期版本根据填入的密钥类型推断提供商,但根据 env 配置无法预测实际使用哪个提供商, 已于 2026-08-23 移除此功能。
CORS
| 变量 | 默认值 | 说明 |
|---|---|---|
STUDIO_CORS_ORIGINS | (空值 = same-origin) | 仅在从其他域名访问时指定 |
不通过 env 设置的内容
用户账户和角色不通过环境变量设置。 服务器在没有任何账户时
会在数据库中创建一个管理员,之后通过应用的用户管理屏幕添加·删除账户,
并在此处分配角色(admin / builder / viewer)。
→ 修改初始密码