Files
heicode-win/docs/onboarding/env-variables.md
T
gongzhiyong 1f21309597 refactor: rename manager codebase dir new-api → heicode, module github.com/heicode/manager
Remove user-facing new-api naming; Docker/network/container names use heicode.
Go imports updated; Dockerfiles and workflows ldflags fixed.

Made-with: Cursor
2026-05-01 01:47:23 +08:00

77 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 环境变量手册(Heicode 客户端)
仅列出 Heicode 客户端(`cc-haha/`)当前 **代码中已支持** 的环境变量。Manager(`heicode/`)的环境变量请以 `heicode/CLAUDE.md` 与 `heicode/.env.example` 为准。
> 来源代码:
> - `cc-haha/src/server/config/providerPresets.ts`
> - `cc-haha/src/server/api/heicode-auth.ts`
> 改动这些变量后 **需要重启** 本地服务才能生效。
## 一、Provider Base URL 覆盖
让客户端把某个 provider 的 `baseUrl` 指向本地或自部署网关,常用于联调本机 Manager。
| 变量 | 作用对象 | 示例 |
|------|----------|------|
| `HEICODE_TAIJIAICLOUD_BASE_URL` | `taijiaicloud` provider | `http://localhost:3000` |
| `HEICODE_CLAWDROUTER_BASE_URL` | `clawdrouter` provider | `http://localhost:4000` |
行为:
- 模块加载时读取,未设置则用 preset 中的默认 baseUrl
- 末尾斜杠会被自动去除
## 二、OAuth 配置
客户端浏览器登录会按如下顺序解析授权地址:
1. 若设置了 `HEICODE_<PROVIDER>_OAUTH_AUTHORIZE_URL`,用其值
2. 否则使用 `<baseUrl>/heicode/oauth/authorize`
`<PROVIDER>` 取值范围与 base URL 相同(`TAIJIAICLOUD` / `CLAWDROUTER`)。
| 变量 | 用途 | 默认 |
|------|------|------|
| `HEICODE_<PROVIDER>_OAUTH_AUTHORIZE_URL` | OAuth 授权入口 | `<baseUrl>/heicode/oauth/authorize` |
| `HEICODE_<PROVIDER>_OAUTH_TOKEN_URL` | OAuth `code → token` 交换端点 | `<baseUrl>/heicode/oauth/token` |
| `HEICODE_<PROVIDER>_OAUTH_CLIENT_ID` | OAuth Client ID(启用 PKCE 时必需) | 未设置 |
| `HEICODE_<PROVIDER>_OAUTH_SCOPE` | OAuth Scope(可选,与 `client_id` 一并使用) | 未设置 |
设置规则:
- **仅设置 AUTHORIZE_URL**:客户端跳转浏览器后,平台必须直接以 `?token=...` 形式回调(适合 Manager 当前的 loopback 实现)
- **同时设置 AUTHORIZE_URL + TOKEN_URL + CLIENT_ID**:启用标准 OAuth2 Authorization Code + PKCE
- **未设置 AUTHORIZE_URL** 时,客户端默认用 `<baseUrl>/heicode/oauth/authorize`,与 Manager 默认路由对齐
详见 [`../integration/heicode-oauth-flow.md`](../integration/heicode-oauth-flow.md)。
## 三、本地服务
| 变量 | 用途 | 默认 |
|------|------|------|
| `SERVER_PORT` | 客户端本地 HTTP/WS 服务端口 | `3456` |
## 四、配置示例
### 仅切 baseUrl 到本地 Manager
```bash
HEICODE_TAIJIAICLOUD_BASE_URL=http://localhost:3000 \
bun run src/server/index.ts
```
### 启用浏览器登录 + 标准 OAuth
```bash
export HEICODE_TAIJIAICLOUD_BASE_URL=http://localhost:3000
export HEICODE_TAIJIAICLOUD_OAUTH_AUTHORIZE_URL=http://localhost:3000/heicode/oauth/authorize
export HEICODE_TAIJIAICLOUD_OAUTH_TOKEN_URL=http://localhost:3000/heicode/oauth/token
export HEICODE_TAIJIAICLOUD_OAUTH_CLIENT_ID=heicode-desktop
export HEICODE_TAIJIAICLOUD_OAUTH_SCOPE=models:read,messages:write
bun run src/server/index.ts
```
> 注:当前 Manager 的实现仅以 loopback 直接回 `?token=...`,标准 OAuth 等待平台侧补全后再启用。
## 五、变更约束
新增环境变量时请同步更新本文与代码注释,避免漂移。本文不是 `.env.example` 的替代,仅作为 docs 索引。