环境变量配置参考

适用版本:ChengOS v0.1.0+ | 最后核对:2026-08-12 | 来源:deploy/.env.exampledeploy/generate-env.sh

ChengOS 的每种部署模式——原生、Docker 与分布式——读取的都是同一个 deploy/.env 文件。本文是参数字典。具体怎么部署,参见安装 ChengOSDocker 部署

请从模板出发,而不是从空文件开始:

cp deploy/.env.example deploy/.env

chengos.sh installgenerate-env.sh 会填入生成的密钥并推导端口与路径,因此多数情况下你只需要修改与默认值不同的部分。

必填密钥

这些在模板中是占位值。保留不改的安装是不安全的。在对外暴露系统之前,请逐个生成。

变量 生成方式 说明
CREDENTIAL_MASTER_KEY_1 openssl rand -hex 32 加密所有已存储的凭证。丢失它会导致已存凭证无法恢复;更换它会让现有凭证失效。
JWT_SECRET openssl rand -hex 32 签发 API 访问令牌。更换它会使所有已签发的会话失效。
POSTGRES_PASSWORD openssl rand -hex 16 必须与 DATABASE_URL 中的密码一致。
REDIS_PASSWORD openssl rand -hex 16 必须与 REDIS_URL 中的密码一致。

数据存储连接

DATABASE_URL=postgres://tianai_db:<密码>@127.0.0.1:5432/master_router
REDIS_URL=redis://:<密码>@127.0.0.1:6379
QDRANT_URL=http://127.0.0.1:6334

主机名取决于部署模式:原生与 managed-process 安装用 127.0.0.1,Docker 用 Compose 服务名 postgres / redis / qdrant,分布式安装用你自己的主机。

智能体记忆节点读取的是离散取值而非 URL,因此以下变量必须与 DATABASE_URLREDIS_URL 保持一致:

变量 默认值
DB_HOST / DB_PORT 127.0.0.1 / 5432
DB_NAME / DB_USER / DB_PASSWORD master_router / tianai_db / —
REDIS_HOST / REDIS_PORT / REDIS_DB 127.0.0.1 / 6379 / 0

两者都可以调整连接池:DATABASE_MAX_CONNECTIONS(10)、DATABASE_MIN_CONNECTIONS(1)、DATABASE_CONNECTION_TIMEOUT(30),以及对应的 REDIS_MAX_CONNECTIONSREDIS_MIN_CONNECTIONSREDIS_CONNECTION_TIMEOUT

端口与服务绑定

变量 默认值 服务
PORT / API_PORT 3000 API 后端与 WebSocket
UI_PORT 8080 可视化编辑器与管理控制台
APP_PORT 5055 对话应用与移动端 H5
BIND_ADDRESS 0.0.0.0 API 绑定地址

在 Docker 中请保持 BIND_ADDRESS=0.0.0.0,改为在宿主机端口绑定层面限制暴露面;容器内的回环地址对 UI 容器是不可达的。

版本固定

变量 默认值 说明
CHENGOS_VERSION latest 四个 Docker 镜像统一的版本固定值。生产环境请设置确切版本。
CHENGOS_<SERVICE>_IMAGE 未设置 面向私有镜像仓库的按镜像覆盖。任一覆盖项都会禁用协调式版本更新。
CHENGOS_IMAGE chengos/chengos:latest 供旧版 Compose 覆盖文件使用的遗留别名。优先使用 CHENGOS_VERSION

运行时行为

变量 默认值 说明
RUN_MIGRATIONS true 启动时应用数据库迁移。演示模式开启时被忽略。
CHENG_DEMO_MODE false fail-closed 的公共演示白名单。启用之前要先初始化演示用户。
RUST_LOG info 日志级别。
RUST_BACKTRACE 1 错误日志中包含调用栈。
DB_INSTALL_MODE managed-process managed-process(用户沙箱,无需 root)或 system-service(apt + systemd,需要 sudo)。
ENABLE_REDIS false 使用智能体记忆时打开。
ENABLE_QDRANT false 使用 RAG 检索时打开。

调度器

控制定时与触发式的工作流运行。

变量 默认值 说明
SCHEDULER_ENABLED true 总开关。
SCHEDULER_NODE_ID node-1 多实例部署中每个实例必须唯一。
SCHEDULER_MAX_CONCURRENCY 8 同时进行的定时执行数量。
SCHEDULER_HOT_WINDOW_SECS 60 临近任务的预读窗口。
SCHEDULER_WARM_WINDOW_SECS 300 即将到来任务的预读窗口。
SCHEDULER_SWEEPER_INTERVAL_SECS 30 到期任务的扫描间隔。
SCHEDULER_LOCK_TIMEOUT_SECS 60 其他实例可以接管任务前的锁租期。

CORS

CORS_PERMISSIVE=true
CORS_ALLOWED_ORIGINS=https://your-frontend.example.com

CORS_PERMISSIVE=true 允许所有来源,这是开发期的便利设置。生产环境应设为 false,并在 CORS_ALLOWED_ORIGINS 中列出真实来源。

工作区与沙箱

变量 说明
CHENG_CLI_ALLOWED_ROOTS 冒号分隔的绝对路径,可用作 CLI 沙箱。未配置时 CLI 会话会被完全禁用。 CLI 与 API 必须在同一文件系统命名空间中看到这些路径。
CHENG_WORKSPACE_ROOT 没有 CLI 沙箱时,code_shell / code_python 的基准目录。默认为 {repo_root}/workspaces./workspaces
SKILLS_DIR 技能库位置。默认 ./skills
NODE_SKILLS_DIR 按节点划分的技能定义。Docker 默认 /app/node_skills
CHENG_GLOBAL_CONFIG_DIR 共享的 shortcuts.yamlpresets.yaml。Docker 为 /app/config,原生部署自动探测。按工作区的配置会覆盖这些。
TEMPLATE_WORKFLOWS_DIR 只读的内置工作流模板,在初始化时安装进新工作区。Docker 为 /app/workflow-templates,原生部署自动探测。

代码执行与模型端点

变量 默认值 说明
CHENG_ENABLE_CODE_PYTHON true 启用 tools/code_python 节点。
CHENG_ENABLE_CODE_JS true 启用 tools/code_js 节点。
ALLOW_PRIVATE_LLM_ENDPOINTS true 允许使用内网地址上的模型端点,例如本地 Ollama。设为 false 可阻止对私有网段的请求。

可选集成

MCP——MCP_ENABLEDfalse)会把应用级 MCP 服务挂载在 /mcpMCP_SERVER_TOKEN 设置静态 bearer 令牌;不设置则使用数据库托管的 MCP 令牌,这是更推荐的方式。MCP_GATEWAY_PORT_START9100)是按工作流动态启动的服务所用的起始端口。

OAuth2——客户端 ID 与密钥来自各供应商的应用控制台:OAUTH2_OPENAI_*OAUTH2_ANTHROPIC_*OAUTH2_GOOGLE_*OAUTH2_GITHUB_*OAUTH2_MICROSOFT_*。PKCE 供应商不需要 client secret,GitHub OAuth 应用通常需要。OAUTH2_REDIRECT_URI 必须与供应商处注册的回调地址完全一致。

邮件——先设 EMAIL_ENABLEDfalse),再配置 SMTP_HOSTSMTP_PORTSMTP_USERNAMESMTP_PASSWORDSMTP_FROMPASSWORD_RESET_BASE_URL。密码重置邮件需要它们。

公开地址——供 Docker 部署告知前端从哪里访问后端:UI_API_BASE_URL/api/v1)、UI_WS_URL/ws)、APP_API_BASE_URLAPP_WS_URL/ws/executions)、APP_CHANNEL_IDAPP_BOUND_WORKFLOW_ID,以及对外可见的 PUBLIC_UI_URLPUBLIC_APP_URLPUBLIC_API_URL

CLI——CHENG_SERVER_URLcheng 客户端连接的服务器地址。Docker 部署默认为 http://api:3000

下一步

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容