跳转到内容

环境变量

Lingchu Bot 使用 NoneBot2 的环境变量系统。将 .env.example 复制为 .env 并根据你的环境调整取值。

项目提供跨平台初始化脚本(./scripts/setup.sh),可自动生成 .env.env.development.env.test.env.production 四个环境配置文件。你也可以手动创建这些文件。

变量 默认值 说明
ENVIRONMENT prod 运行环境(proddev
HOST 0.0.0.0 FastAPI 监听地址
PORT 8080 FastAPI 监听端口
DRIVER ~fastapi+~httpx+~websockets NoneBot 驱动栈;前缀 ~ 启用默认适配器配置
变量 默认值 说明
COMMAND_START ["/", ""] 命令起始前缀;空字符串允许无前缀命令
COMMAND_SEP [".", " "] 命令分段分隔符
变量 默认值 说明
LOG_LEVEL INFO Python 日志级别
FASTAPI_OPENAPI_URL /openapi.json OpenAPI schema 路径;设为空字符串以禁用
FASTAPI_DOCS_URL /docs Swagger UI 路径;生产环境应禁用
FASTAPI_REDOC_URL /redoc ReDoc 文档路径;生产环境应禁用
变量 默认值 说明
ALEMBIC_STARTUP_CHECK false 生产环境设为 true 以在启动时强制执行 schema 迁移检查
SQLALCHEMY_DATABASE_URL (未设置) 用于多数据库测试的 SQLAlchemy 数据库 URL;支持 SQLite / PostgreSQL / MySQL / MariaDB 四个后端,未设置时使用默认 SQLite
变量 默认值 说明
LINGCHU_IN_CONTAINERS false 在 Docker / Kubernetes 内运行时设为 true。必须为小写 true / false —— NoneBot2 在此只接受 JSON 标准布尔值
变量 默认值 说明
LINGCHU_SUPERUSERS (未设置) Lingchu UID 到平台账号映射的 JSON 对象;参见超级用户身份
LINGCHU_SUPERUSER_KEY 123456789abcdef 未配置 Lingchu 超级用户时用于根级操作的轻量认证密钥。生产环境应覆盖为强随机值

参见超级用户身份了解详细配置。

变量 默认值 说明
LINGCHU_ADAPTER (未设置) 适配器选择。使用 ~ 前缀启用 NoneBot 适配器简写(如 ~onebot.v11)。接受字符串或字符串列表
LINGCHU_LOCALE en_US Lingchu i18n 语言。支持的目录:zh_CNen_US。NoneBot 会自动将其转换为 lingchu_locale 配置字段
变量 默认值 说明
LINGCHU_MESSAGE_STORE_ENABLED true 启用消息存储钩子(群消息历史、审计、摘要)
LINGCHU_MESSAGE_STORE_RETENTION_DAYS 30 已存储消息的保留天数。0 = 永久保留。必须 >= 0
LINGCHU_MESSAGE_STORE_SUMMARY_LIMIT 500 单次摘要包含的最大消息数。必须 >= 0
LINGCHU_MESSAGE_STORE_RECORD_API_CALLS true 是否记录平台 API 调用摘要
LINGCHU_MESSAGE_STORE_CLEANUP_ENABLED true 启用过期消息记录的自动清理

Pydantic AI Agent 通过 localstore 管理的 llm.toml 中的 [pydantic-ai] 段配置,由部署者手动维护(可按 llm.schema.json 生成)。 请把提供商凭据放在 LINGCHU_AI_API_KEY 这类部署环境变量中,再通过 api_key_env 引用变量名;LINGCHU_AI_MODEL(Pydantic AI 模型字符串,如 openai:gpt-5.2anthropic:claude-sonnet-4-5)用于填充 [pydantic-ai] model 字段。部署级 LLM 变量不再作为兜底来源。

变量 默认值 说明
LINGCHU_RECALL_MESSAGE_DEFAULT_COUNT 10 未显式指定数量时默认撤回的消息数。范围:1100
变量 默认值 说明
LINGCHU_PERMISSION_PLATFORM_RUNTIME_PASSTHROUGH true 平台权限解析器是否透传到运行时配置。true = 透传;false = 严格;或按平台的映射(严格 JSON)
变量 默认值 说明
LINGCHU_COMMAND_TRIGGER_OVERRIDES {} 按命令的触发词覆盖(严格 JSON)。空 = 使用默认值。示例:{"kick_member":{"triggers":["kick","踢"]}}
LINGCHU_MENU_PAGE_TRIGGER_OVERRIDES {} 按菜单页的触发词覆盖(严格 JSON)。空 = 使用默认值
变量 默认值 说明
LINGCHU_PROTECTED_SUBJECT_FEATURE_KEYS (内置集合) 需要提升主体权限的功能键。严格 JSON 字符串列表。默认为内置的 12 项敏感操作(kick_memberblock_memberglobal_block_membermember_muterecall_messageset_member_cardset_member_titleset_member_adminunset_member_adminremote_kickremote_blockremote_mute