mirror of
https://github.com/AstrBotDevs/AstrBot
synced 2026-07-16 01:40:15 +08:00
432 lines
8.7 KiB
Markdown
432 lines
8.7 KiB
Markdown
# 环境变量规范
|
||
|
||
## 概述
|
||
|
||
本文档定义 AstrBot 环境变量的规范,所有环境变量以 `ASTRBOT_` 为前缀。
|
||
|
||
> 相关: [config.md](config.md)(配置规范), [path.md](path.md)(路径规范)
|
||
|
||
| 分类 | 前缀 | 说明 |
|
||
|------|------|------|
|
||
| 实例标识 | `ASTRBOT_INSTANCE_*` | 实例相关配置 |
|
||
| 核心配置 | `ASTRBOT_*` | 核心功能配置 |
|
||
| 网络配置 | `ASTRBOT_NET_*` | 网络相关配置 |
|
||
| SSL/TLS | `ASTRBOT_SSL_*` | 安全连接配置 |
|
||
| 代理配置 | `*_PROXY` | 代理相关配置 |
|
||
| 平台配置 | 平台特定 | 第三方平台集成 |
|
||
|
||
---
|
||
|
||
## 实例标识 / Instance Identity
|
||
|
||
### `ASTRBOT_INSTANCE_NAME`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 实例名称,用于日志和服务名 |
|
||
| 类型 | string |
|
||
| 默认 | `AstrBot` |
|
||
|
||
---
|
||
|
||
## 核心配置 / Core Configuration
|
||
|
||
### `ASTRBOT_ROOT`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | AstrBot 根目录路径 |
|
||
| 类型 | path |
|
||
| 默认 | 当前工作目录 |
|
||
|
||
**特殊路径**:
|
||
- 桌面客户端:`~/.astrbot`
|
||
- 服务器:`/var/lib/astrbot/<instance>/`
|
||
|
||
### `ASTRBOT_LOG_LEVEL`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 日志等级 |
|
||
| 类型 | enum |
|
||
| 默认 | `INFO` |
|
||
| 可选值 | `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL` |
|
||
|
||
### `ASTRBOT_RELOAD`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 启用插件热重载 |
|
||
| 类型 | boolean (0/1) |
|
||
| 默认 | `0` (禁用) |
|
||
|
||
### `ASTRBOT_DISABLE_METRICS`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 禁用匿名使用统计 |
|
||
| 类型 | boolean (0/1) |
|
||
| 默认 | `0` (启用统计) |
|
||
|
||
### `ASTRBOT_PYTHON`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 覆盖 Python 可执行文件路径(用于本地代码执行) |
|
||
| 类型 | path |
|
||
| 示例 | `/usr/bin/python3`, `/home/user/.pyenv/shims/python` |
|
||
|
||
### `ASTRBOT_DEMO_MODE`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 启用演示模式(可能限制部分功能) |
|
||
| 类型 | boolean |
|
||
| 默认 | `False` |
|
||
|
||
### `ASTRBOT_TESTING`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 启用测试模式(影响日志和部分行为) |
|
||
| 类型 | boolean |
|
||
| 默认 | `False` |
|
||
|
||
### `ASTRBOT_DESKTOP_CLIENT`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 标记是否通过桌面客户端执行(内部使用) |
|
||
| 类型 | boolean (0/1) |
|
||
| 默认 | `0` |
|
||
|
||
### `ASTRBOT_SYSTEMD`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 标记是否通过 systemd 服务执行 |
|
||
| 类型 | boolean (0/1) |
|
||
| 默认 | `0` |
|
||
|
||
---
|
||
|
||
## 管理面板 / Dashboard
|
||
|
||
### `ASTRBOT_DASHBOARD_ENABLE`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 启用或禁用 WebUI 管理面板 |
|
||
| 类型 | boolean |
|
||
| 默认 | `True` |
|
||
|
||
---
|
||
|
||
## 国际化 / Internationalization
|
||
|
||
### `ASTRBOT_CLI_LANG`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | CLI 界面语言 |
|
||
| 类型 | enum |
|
||
| 默认 | `zh` (跟随系统 locale) |
|
||
| 可选值 | `zh` (中文), `en` (英文) |
|
||
|
||
---
|
||
|
||
## 网络配置 / Network
|
||
|
||
### `ASTRBOT_HOST`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | API 绑定主机 |
|
||
| 类型 | string |
|
||
| 示例 | `0.0.0.0` (所有接口), `127.0.0.1` (仅本地) |
|
||
|
||
### `ASTRBOT_PORT`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | API 绑定端口 |
|
||
| 类型 | integer |
|
||
| 示例 | `3000`, `6185`, `8080` |
|
||
|
||
---
|
||
|
||
## API 服务器配置 / API Server
|
||
|
||
### `ASTRBOT_API_ENABLE`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 启用 HTTP API 服务器 |
|
||
| 类型 | boolean |
|
||
| 默认 | `true` |
|
||
|
||
### `ASTRBOT_API_TIMEOUT`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | API 请求超时时间(秒) |
|
||
| 类型 | integer |
|
||
| 默认 | `60` |
|
||
|
||
### `ASTRBOT_API_MAX_BODY_SIZE`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | API 最大请求体大小(MB) |
|
||
| 类型 | integer |
|
||
| 默认 | `100` |
|
||
|
||
### `ASTRBOT_API_KEY`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 默认 API Key(用于开发环境) |
|
||
| 类型 | string |
|
||
| 注意 | 建议通过 secrets.yaml 配置 |
|
||
|
||
### `ASTRBOT_CALLBACK_API_BASE`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | Webhook 回调基础 URL |
|
||
| 类型 | url |
|
||
| 示例 | `https://your-server.com/callback` |
|
||
|
||
### `ASTRBOT_CALLBACK_SECRET`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | Webhook 回调签名密钥 |
|
||
| 类型 | string |
|
||
| 注意 | 用于验证回调请求签名 |
|
||
|
||
---
|
||
|
||
## SSL/TLS 配置
|
||
|
||
### `ASTRBOT_SSL_ENABLE`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 启用 SSL/TLS |
|
||
| 类型 | boolean |
|
||
| 默认 | `false` |
|
||
|
||
### `ASTRBOT_SSL_CERT`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | SSL 证书路径(PEM 格式) |
|
||
| 类型 | path |
|
||
| 示例 | `/etc/astrbot/certs/myinstance/fullchain.pem` |
|
||
|
||
### `ASTRBOT_SSL_KEY`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | SSL 私钥路径(PEM 格式) |
|
||
| 类型 | path |
|
||
| 示例 | `/etc/astrbot/certs/myinstance/privkey.pem` |
|
||
|
||
### `ASTRBOT_SSL_CA_CERTS`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | SSL CA 证书链路径(可选,用于客户端验证) |
|
||
| 类型 | path |
|
||
| 示例 | `/etc/ssl/certs/ca-certificates.crt` |
|
||
|
||
---
|
||
|
||
## 代理配置
|
||
### 通用
|
||
### `http_proxy` / `HTTP_PROXY`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | HTTP 代理地址 |
|
||
| 类型 | url |
|
||
| 示例 | `http://127.0.0.1:7890`, `socks5://127.0.0.1:1080` |
|
||
|
||
### `https_proxy` / `HTTPS_PROXY`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | HTTPS 代理地址 |
|
||
| 类型 | url |
|
||
| 示例 | `http://127.0.0.1:7890`, `socks5://127.0.0.1:1080` |
|
||
|
||
### `no_proxy` / `NO_PROXY`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 不走代理的主机列表(逗号分隔) |
|
||
| 类型 | string |
|
||
| 示例 | `localhost,127.0.0.1,192.168.0.0/16,.local` |
|
||
|
||
---
|
||
|
||
## 第三方集成 / Third-party Integrations
|
||
|
||
### `DASHSCOPE_API_KEY`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 阿里云 DashScope API 密钥(用于 Rerank 服务) |
|
||
| 类型 | string |
|
||
| 获取地址 | https://dashscope.console.aliyun.com/ |
|
||
| 示例 | `sk-xxxxxxxxxxxx` |
|
||
|
||
### `COZE_API_KEY`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | Coze API 密钥 |
|
||
| 类型 | string |
|
||
| 获取地址 | https://www.coze.com/ |
|
||
|
||
### `COZE_BOT_ID`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | Coze Bot ID |
|
||
| 类型 | string |
|
||
|
||
### `BAY_DATA_DIR`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 计算机控制相关的数据目录(用于截图/文件存储) |
|
||
| 类型 | path |
|
||
| 示例 | `/var/lib/astrbot/bay_data` |
|
||
|
||
---
|
||
|
||
## 平台特定配置 / Platform-specific
|
||
|
||
### `TEST_MODE`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | QQ 官方机器人测试模式开关 |
|
||
| 类型 | enum |
|
||
| 默认 | `off` |
|
||
| 可选值 | `on`, `off` |
|
||
|
||
---
|
||
|
||
## GPG 安全配置 / GPG Security
|
||
|
||
### `ASTRBOT_GPG_ENABLE`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 启用 GPG 配置签名与验签功能 |
|
||
| 类型 | boolean |
|
||
| 默认 | `false` |
|
||
|
||
### `ASTRBOT_GPG_VERIFY_MODE`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 验签模式 |
|
||
| 类型 | enum |
|
||
| 默认 | `warn` |
|
||
| 可选值 | `none` (不验签), `warn` (仅警告), `enforce` (阻止启动) |
|
||
|
||
### `ASTRBOT_GPG_TRUSTED_KEYS`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 信任的 GPG 公钥指纹列表(逗号分隔) |
|
||
| 类型 | string |
|
||
| 示例 | `ABCDEF1234567890...,FEDCBA0987654321...` |
|
||
|
||
### `ASTRBOT_GPG_SIGNED_CONFIGS`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | 需要验签的配置文件列表(逗号分隔) |
|
||
| 类型 | string |
|
||
| 示例 | `secrets.yaml,agent.yaml,platform.yaml` |
|
||
|
||
### `ASTRBOT_GPG_GNUPG_HOME`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | GPG 主目录路径(默认使用系统配置) |
|
||
| 类型 | path |
|
||
| 示例 | `/home/user/.gnupg` |
|
||
|
||
### `ASTRBOT_GPG_PRIVATE_KEY`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | GPG 私钥(ASCII Armor 格式),用于签名 |
|
||
| 类型 | string |
|
||
| 注意 | 建议通过 secrets.yaml 配置,优先使用环境变量 |
|
||
|
||
### `ASTRBOT_GPG_PASSPHRASE`
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 说明 | GPG 私钥密码短语 |
|
||
| 类型 | string |
|
||
| 注意 | 建议通过 secrets.yaml 配置,优先使用环境变量 |
|
||
|
||
---
|
||
|
||
## 命名规范
|
||
|
||
### 前缀规则
|
||
|
||
| 前缀 | 用途 |
|
||
|------|------|
|
||
| `ASTRBOT_` | AstrBot 核心配置 |
|
||
| `ASTRBOT_SSL_` | SSL/TLS 配置 |
|
||
| `ASTRBOT_GPG_` | GPG 安全配置 |
|
||
| `ASTRBOT_INSTANCE_` | 实例相关 |
|
||
| `http_proxy`, `https_proxy`, `no_proxy` | 标准代理变量(无前缀) |
|
||
|
||
### 布尔值
|
||
|
||
布尔值使用以下格式之一:
|
||
|
||
| 格式 | 示例 |
|
||
|------|------|
|
||
| 整数 (0/1) | `ASTRBOT_RELOAD=0` |
|
||
| 字符串 (true/false) | `ASTRBOT_SSL_ENABLE=false` |
|
||
| 枚举 | `TEST_MODE=on/off` |
|
||
|
||
---
|
||
|
||
## 配置文件优先级
|
||
|
||
1. 环境变量(最高优先级)
|
||
2. `.env` 文件
|
||
3. 默认值(最低优先级)
|
||
|
||
---
|
||
|
||
## 特殊变量展开
|
||
|
||
支持 `${VAR_NAME}` 格式的变量展开:
|
||
|
||
```bash
|
||
INSTANCE_NAME="my-bot"
|
||
ASTRBOT_ROOT="${ASTRBOT_ROOT:-/var/lib/astrbot}"
|
||
```
|
||
|
||
### 支持的展开语法
|
||
|
||
| 语法 | 说明 |
|
||
|------|------|
|
||
| `${VAR}` | 展开 VAR 的值 |
|
||
| `${VAR:-default}` | 如果 VAR 未设置或为空,使用 default |
|
||
| `${VAR:=default}` | 如果 VAR 未设置或为空,设置为 default 并展开 |
|