跳转到内容

Server 环境变量

事实源为 server/src/config-schema.ts;server/.env.example 是示例,不覆盖 schema 默认值。下表覆盖 schema 的全部输入变量。未设置 表示可省略,必填 表示无默认值;空串、false 与未设置含义不同。布尔值接受 true/false 或 1/0。

为避免把官方部署细节当作自部署示例,固定官方地址用“内置官方预设”表示,内置诊断路径用语义描述;不是让你把这些文字填入配置。回环地址也以语义表示,实际安装请保留向导生成值。示例基址 https://skills.example.com,示例邮箱 admin@example.com。

名称默认值说明
MIN_CLIENT_VERSION未设置严格 SemVer,空串视为未设置,对外为 null
DATABASE_URL必填PostgreSQL 连接串,非空,保密
JWT_SECRET必填至少 16 字符;生产至少 32 字符随机值
JWT_EXPIRES_IN_SECONDS604800会话秒数,300–63072000(2 年);官方推荐 31536000,配合 APP 会话续期
PORT3001监听端口
HOSTIPv4 回环地址IPv4 监听地址;Compose 按容器网络设置
TRUSTED_PROXIESIPv4 回环地址可信代理地址或 CIDR,逗号分隔,不能信任所有来源
NODE_ENVdevelopmentdevelopment、production 或 test
SKILLHUB_PROFILEselfhostselfhost 或 yitan-official;生产必须显式设置
PUBLIC_BASE_URLHTTP 回环地址的 3001 端口生产必须显式设置;非回环必须 HTTPS,可带前缀
INSTANCE_ADDITIONAL_BASE_URLS空列表逗号分隔的附加基址,不得重复或包含主基址
CORS_ORIGINhttp://localhost:1420,tauri://localhost官方允许来源;自部署仍拒绝带 Origin 的请求
SKILL_CARD_STORAGE_DIR/opt/skillhub/data/skill-cards卡片绝对目录,切换 S3 后保留
MEDIA_STORAGE_DIR/opt/skillhub/data/media媒体绝对目录,切换 S3 后保留
STORAGE_DEFAULTfilesystemfilesystem 或 s3,只影响默认新写入
S3_ENDPOINT未设置HTTPS 服务 endpoint;回环或可信 Compose 单标签可 HTTP
S3_REGION未设置地域,仅小写字母、数字、短横线
S3_BUCKET未设置bucket 名,3–63 字符
S3_PREFIX空串相对对象前缀,不带首尾斜杠
S3_ACCESS_KEY_ID未设置对象存储访问标识,保密
S3_SECRET_ACCESS_KEY未设置对象存储密钥,保密
S3_FORCE_PATH_STYLEfalse按供应商要求启用路径式寻址
AVATAR_STYLE_ORIGIN内置官方预设头像风格库信任基址,同 PUBLIC_BASE_URL 校验
CATALOG_ORIGIN内置官方预设自部署核验官方商店来源的信任基址
CATALOG_TOKEN_TTL_DAYS30官方商店专用登录有效天数,1–90;仅一探官方服务使用

设置任一 S3 必需项或默认选 s3 时,endpoint、region、bucket、access key、secret key 五项必须齐全。改变 endpoint/bucket/prefix 会改变 namespace;先完成 复制与改指。

名称默认值说明
AUTH_MODElegacylegacy、dual、yitan;官方 OIDC 模式由部署档约束
LOCAL_REGISTRATION_ENABLEDtruefalse 强制关闭本地注册
REGISTRATION_MODEselfhost 为 invite,官方为 open环境输入只接受 open/invite;界面另外支持 closed
REGISTRATION_INVITE_CODE未设置注册邀请码;selfhost invite 无码时关闭注册
AUTH_LEGACY_MIGRATION_ALLOWLIST空列表旧账号显式关联的本地用户 UUID,不接受邮箱
AUTH_LEGACY_MIGRATION_SESSION_SECONDS600旧账号关联的短时会话,60–900 秒
AUTH_LOGIN_ATTEMPTS_PER_15_MIN10账号与 IP 组合登录限制,1–1000
AUTH_LOGIN_IP_ATTEMPTS_PER_15_MIN100IP 登录总限制,10–10000,不小于上一项
AUTH_REGISTER_ATTEMPTS_PER_HOUR5注册尝试限制,1–1000
AUTH_YITAN_EXCHANGE_ATTEMPTS_PER_15_MIN30官方登录交换尝试,1–1000
AUTH_YITAN_BACKCHANNEL_ATTEMPTS_PER_MINUTE300官方注销回传尝试,10–10000

显式注册环境配置优先于界面;邀请码最多 512 字符,生产设置非空邀请码时至少 16 字符。不要混用注册邀请码与一次性初始化码。

这些是 schema 保留的官方认证合同,不能据此宣称自部署已支持任意通用 OIDC。普通自部署使用本地邮箱密码,不需要配置本节。

名称默认值说明
YITAN_OIDC_ISSUER内置官方预设issuer URL,不以斜杠结尾
YITAN_OIDC_JWKS_URL内置官方预设签名公钥地址
YITAN_OIDC_AUDIENCEskillhub-apiAPI audience
YITAN_OIDC_ALLOWED_AZPskillhub-desktop,skillhub-web允许的客户端,非空、去重
YITAN_OIDC_CLOCK_TOLERANCE_SECONDS5时钟容差,0–60 秒
YITAN_OIDC_MAX_TOKEN_AGE_SECONDS600token 最大年龄,300–900 秒
YITAN_OIDC_LINK_MAX_AUTH_AGE_SECONDS600关联时最大认证年龄,60–900 秒
YITAN_OIDC_BACKCHANNEL_LOGOUT_AUDIENCEskillhub-desktop,skillhub-web注销回传 audience
YITAN_OIDC_LOGOUT_MAX_TOKEN_AGE_SECONDS120注销 token 最大年龄,30–300 秒
YITAN_TEST_BACKCHANNEL_ENABLEDfalse隔离测试注销回传开关
YITAN_TEST_OIDC_ISSUER内置官方测试预设测试 issuer
YITAN_TEST_OIDC_JWKS_URL内置官方测试预设测试签名公钥地址
YITAN_TEST_OIDC_BACKCHANNEL_LOGOUT_AUDIENCEskillhub-desktop-test测试 audience
WEB_ADMIN_EMERGENCY_PASSWORD_LOGIN_ENABLEDfalseWeb 管理密码入口开关,自部署无需开启
YITAN_WEB_CLIENT_IDskillhub-webWeb OIDC 客户端
YITAN_WEB_CLIENT_SECRET未设置16–512 字符;只留 Server
YITAN_WEB_REDIRECT_URI内置官方预设登录回调 URL
YITAN_WEB_POST_LOGOUT_REDIRECT_URI内置官方预设注销后跳转 URL
YITAN_WEB_SUCCESS_URL内置官方预设登录成功页 URL
YITAN_WEB_OIDC_TRANSACTION_SECONDS300登录事务有效期,120–600 秒
YITAN_WEB_OIDC_TOKEN_TIMEOUT_MS5000token 请求超时,1000–15000 毫秒
名称默认值说明
AI_API_BASE_URL未设置AI 基址;生产要求 HTTPS
AI_API_KEY未设置供应商密钥,与基址完整配置时覆盖界面设置
AI_MODELkimi-k3模型名,不代表供应商都支持该模型
AI_PROTOCOLopenai-responsesopenai、anthropic 或 openai-responses
AI_RATE_LIMIT_PER_MINUTE6分钟调用限制,1–60
AI_GLOBAL_DAILY_LIMIT200初始实例每日次数,1–100000
AI_PER_USER_DAILY_LIMIT50初始个人每日次数,1–100000
AI_MAX_CONCURRENT2最大并发,1–20
AI_MAX_TOKENS4096输出 token 上限,512–8192
AI_TIMEOUT_MS30000请求超时,1000–120000 毫秒
FAL_KEY未设置16–512 字符,环境优先;自部署也可测试后在界面保存
SKILL_AVATARS_ENABLEDfalse官方头像开关;selfhost 根据有效 fal Key 判断生成可用性
SKILL_AVATAR_MODEL_READSselfhost 为 variants,官方为 legacy头像读取模型,legacy 或 variants
SKILL_AVATAR_DAILY_LIMIT200每日头像数量限制,1–10000
SKILL_AVATAR_WORKER_CONCURRENCY4worker 并发步骤,1–32
SKILL_AVATAR_GENERATE_CONCURRENCY1付费生成阶段并发,1–16,不大于 worker 并发
PICEM_BASE_URL内置官方 Picem 预设固定字面量,非任意图床 endpoint
PICEM_API_KEY未设置至少 32 字符,官方媒体适配器凭据
TOPIC_IMAGE_HOSTS内置官方图片主机预设专题允许图片主机,非空、逗号分隔裸域名

AI 并发至少为 2 时,头像生成并发不能超过 AI 并发减一;AI 并发为 1 时后台头像提示词工作等待。环境日额度必须为正,界面策略可设 0 禁止消费;见 AI 接口。

名称默认值说明
CREDENTIAL_KEK_BASE64未设置32 字节密钥的规范 base64;生产必填高熵值
CREDENTIAL_KEK_VERSION1当前密钥版本,1–1000000
CREDENTIAL_KEK_KEYRING_JSON{}旧版本密钥映射,不能重定义当前版本
CREDENTIAL_WRITES_PER_HOUR30团队钥匙写入限制,1–1000
RUNTIME_ENV_FETCHES_PER_MINUTE60运行时钥匙获取限制,1–1000
CREDENTIAL_MAX_VALUE_BYTES16384单值字节上限,1–65536
SKILL_MAX_PER_USER50每用户 Skill 上限,1–10000
SKILL_MAX_VERSIONS_PER_SKILL30每 Skill 版本上限,1–1000
SKILL_MAX_STORAGE_BYTES_PER_USER262144000每用户存储字节,20 MiB–100 GiB
SKILL_VERSION_WRITES_PER_HOUR30版本写入限制,1–1000
MIGRATION_WRITES_PER_HOUR1200迁移 POST 预算,1–100000
LIBRARY_CARD_UPLOADS_PER_HOUR240卡片上传限制,1–10000
LIBRARY_CARD_DOWNLOADS_PER_MINUTE120卡片下载限制,1–10000
MARKETPLACE_DOWNLOADS_PER_MINUTE60商店下载限制,1–1000
FEEDBACK_ATTEMPTS_PER_HOUR10反馈提交限制,1–1000
APP_UPDATE_MANIFEST_PATHapp-update-manifest.json更新清单路径;普通自部署无需改动
ADMIN_AGENT_RELEASE_SUMMARY_PATH内置诊断摘要绝对路径管理诊断读取字段,普通自部署无需配置
ADMIN_GATEWAY_LOG_PATH内置网关日志绝对路径管理诊断读取字段,普通自部署无需配置

配置历史 keyring 时必须保留当前 KEK,不能删除仍有密文引用的旧 Key。备份必须包含 .env 与历史密钥;修改这些字段前先完成 备份验证。

本文档对应 v0.35.1(开发版) · 查看 v0.35.1 的文档