Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

环境变量索引

本手册中提到的所有环境变量,集中在一张表里。

启用远程构建模式

设置以下两个,把 MCP 服务升级到远程构建模式。见 仅计划模式 vs 远程构建

变量必需?默认说明
CONTROL_BASE_URL构建服务器的 URL(例如 https://esphome.cloud)。必须包含 scheme。没有这个,所有 build 调用都会返回错误说明当前模式。
MCP_AUTH_SECRET构建服务器的鉴权 token,从构建服务器主机的 /etc/aegis/secrets.env 拿。当 API key 对待。没有这个,对 /grant/request 的调用会返回 401。

espctl CLI 在用户机器上使用

由用户机器上的 espctl CLI 读取(尤其是 espctl ide sync)。全部都不 强制要求 —— 都有回落路径。

变量必需?默认说明
DEFAULT_IDF_VERSION--idf-version.idf-version.espctl.toml 里的 [idf_version] 都没指定 IDF 版本时的最后兜底。espctl ide sync 和部分构建路径会用。
ESPCTL_SYSROOT~/.espctl/sysroot本地 IDE sysroot 的根目录。每个版本的 sysroot 落在 <base>/<idf-version>/ 下。
ESPCTL_SERVER已登录的服务器地址 → https://esphome.cloudespctl ide sync 的服务器 URL 覆盖。--server 标志的优先级再高一点。
ESPCTL_ALLOW_INSECURE未设置设为 1 时允许非 HTTPS 的服务器 URL(仅本地开发用)。影响 espctl loginespctl build --remote

构建服务器使用(运维关注)

这些不在用户机器上设置 —— 是给运行构建服务器主机的运维。

变量必需?默认说明
ALLOWED_ORIGINS允许调用 /grant/*/signaling/* 的精确 origin 列表(逗号分隔)。包含 scheme;不要用通配符。例:https://esphome.cloud,https://www.esphome.cloud
CONTROL_PUBLIC_BASE_URL构建服务器的公开 URL,在某些响应 body 和许可字段中使用。必须与实际部署的 URL 匹配。
TURN_EXTERNAL_IP备选服务器的公网 IP(通常和构建服务器同一台主机)。
MCP_AUTH_SECRETmaster 鉴权 token。通过同一个环境变量发给客户端。
AGENT_AUTH_SECRET构建机器用来向构建服务器注册的鉴权 token。

构建机器使用(运维关注)

变量必需?默认说明
CONTROL_BASE_URL构建机器用来查看任务的 URL。必须是可路由 URL,不是 SSH 别名。安装器默认 https://3qMq,在大多数环境里会因 DNS 错误失败 —— 安装后编辑 /etc/aegis/agent.env
AGENT_PUBLIC_IP自动发现构建机器报给构建服务器的公网 IP。未设置时自动发现,但在某些网络限制后自动发现可能不可靠。
AGENT_AUTH_SECRET向构建服务器注册的鉴权 token。和构建服务器侧值相同。
ESPCTL_STORE_ROOT构建机器应该使用的工具链 store 路径。
RUST_LOGinfo日志级别。RUST_LOG=debug 产生详细日志。

type-driven-ui 前端使用

这些是 Vite 环境变量,前缀 VITE_。它们在构建时被 bake 进 bundle, 不是运行时读取的。

变量必需?默认说明
VITE_API_BASE_URL(空)前端调用构建服务器用的 base URL。空字符串表示同源(在反向代理后部署时推荐)。本地开发针对同机构建服务器,设为 http://localhost:8080

构建系统自动设置

这些通常不手动设置,但出现在一些日志和配置文件里。

变量由谁设置说明
IDF_PATH构建机器(在沙箱里)沙箱里被选中的 IDF 版本路径。不要在客户端配置中覆盖;让构建机器设。
PKG_TEMP_DIRrelease 脚本makeself 包在构建主机上的暂存位置。
TMPDIRrelease 脚本打包时使用的临时目录 —— 在构建主机上设置,当 /tmp 是小 tmpfs 时使用。

速查:在新用户机器上要设什么

对一个 MCP 用户(CLI/IDE 流程),你只需要在客户端配置(例如 .claude/settings.json)里设两个环境变量:

CONTROL_BASE_URL   = https://esphome.cloud            # 你的构建服务器 URL
MCP_AUTH_SECRET    = <从运维那里拿>

对一个浏览器用户(esphome.cloud 流程),你什么都不用设 —— 浏览器 通过同源 REST API 直接和构建服务器对话。