环境变量配置
通过环境变量和配置面板管理 HackerStart 的所有集成服务
两种配置方式
HackerStart 的配置分两层:
- 环境变量文件(
.env):数据库连接、加密密钥、租户模式等基础设施配置。修改后需要重启服务。 - 后台配置面板(
/admin/config):支付密钥、邮件配置、AI 服务等业务配置。修改后即时生效,无需重启。
环境变量优先级高于后台面板。如果 .env 中设置了某项,面板中会显示为「已锁定」,不可编辑。详见《配置系统设置》。
必需变量
以下变量必须在 .env 中配置,否则应用无法启动。
InsForge(数据库与认证)
在《数据库》文档中查看 InsForge 的设置方式。
| 变量 | 说明 |
|---|---|
INSFORGE_URL | InsForge 服务地址(如 http://localhost:10700) |
INSFORGE_ANON_KEY | InsForge 匿文密钥(服务端) |
INSFORGE_API_KEY | InsForge API 密钥(仅服务端,不可暴露给浏览器) |
VITE_INSFORGE_URL | 浏览器端 InsForge 地址(通常和 INSFORGE_URL 相同) |
VITE_INSFORGE_ANON_KEY | 浏览器端 InsForge 密钥(通常和 INSFORGE_ANON_KEY 相同) |
Session 加密
| 变量 | 说明 |
|---|---|
SESSION_SECRET | Session 加密密钥(生成方式:openssl rand -base64 32) |
VITE_ 前缀的变量会被打包到浏览器端代码中。绝对不要给 INSFORGE_API_KEY 加 VITE_ 前缀。
可选变量
数据库直连
| 变量 | 默认 | 说明 |
|---|---|---|
DATABASE_URL | 无 | PostgreSQL 直连 URL。未设置时配置系统回退到 env + 默认值,/admin/config 不可用 |
CONFIG_ENCRYPTION_KEY | 无 | 配置加密密钥(openssl rand -base64 32)。启用 /admin/config 面板时必需 |
CONFIG_ENCRYPTION_KEY 丢失后,已加密的配置值将不可读(回退到默认值)。密钥轮换需要重新保存所有加密配置。
平台管理员
| 变量 | 说明 |
|---|---|
PLATFORM_ADMIN_BOOTSTRAP_EMAILS | 平台管理员引导邮箱(逗号分隔)。platform_admins 表为空时,名单内邮箱的用户首次访问 /admin/config 自动成为 platform_owner。引导完成后此变量不再生效 |
多租户设置
这四组是配对变量——不带 VITE_ 的(服务端)和带 VITE_ 的(客户端)必须一致,否则启动时报错。
| 变量 | 可选值 | 默认值 | 说明 |
|---|---|---|---|
TENANCY_MODE / VITE_TENANCY_MODE | single, multi | single | 单租户或按租户切换工作空间 |
TENANT_UI / VITE_TENANT_UI | hidden, visible | hidden | 是否向用户显示工作空间概念 |
ROLES_ENABLED / VITE_ROLES_ENABLED | true, false | false | 是否启用 owner/admin/operator 角色区分 |
ORG_MODE / VITE_ORG_MODE | off, hierarchical | off | 是否启用组织层级治理 |
如何选择租户模式
- 个人/小团队:
single+hidden+ROLES_ENABLED=false— 注册后直接进入产品,无工作空间感知 - 多城市/多项目社区(如 Coding Girls Club):
multi+visible+ROLES_ENABLED=true+ORG_MODE=hierarchical - 平权社区平台:
multi+visible+ROLES_ENABLED=true+ORG_MODE=off
组织创建控制(运行时)
启用 ORG_MODE=hierarchical 后,以下配置项通过 /admin/config 面板管理,不是环境变量:
| 配置项 | 默认值 | 说明 |
|---|---|---|
tenancy.orgCreation | admin_only | 谁能创建组织:admin_only(仅平台管理员)或 open(所有登录用户) |
tenancy.orgMaxCount | 1 | 最大组织数量。0 = 不限制 |
内容开关
控制站点中哪些内容模块对用户可见。同样是配对变量。
| 变量 | 默认值 | 说明 |
|---|---|---|
CONTENT_DOCS_ENABLED / VITE_CONTENT_DOCS_ENABLED | true | 文档页面 |
CONTENT_BLOG_ENABLED / VITE_CONTENT_BLOG_ENABLED | true | 博客 |
CONTENT_CHANGELOG_ENABLED / VITE_CONTENT_CHANGELOG_ENABLED | false | 更新日志 |
CONTENT_ROADMAP_ENABLED / VITE_CONTENT_ROADMAP_ENABLED | false | 路线图 |
CONTENT_LEGAL_ENABLED / VITE_CONTENT_LEGAL_ENABLED | true | 法律页面(隐私政策、服务条款) |
后台配置面板
完成环境变量配置后,可以通过 /admin/config 管理运行时配置:
- 平台设置:产品名称(
platform.productName) - AI 服务:AI 服务商和 API 密钥
- 支付:支付服务商和 Webhook 密钥
- 邮件:邮件服务商和 SMTP 配置
- 存储:存储服务商和访问密钥
- 功能开关:Beta 横幅等功能特性
详细的配置面板使用说明见《配置系统设置》。