环境变量参考
完整清单以仓库里的 .env.example 为准,每一项都有注释。本页是逐项展开。
生产必须换的三项
章节:生产必须换的三项| 变量 | 作用 | 怎么生成 | 不改的后果 |
|---|---|---|---|
APP_ENCRYPTION_KEY | 32 字节 base64,加密 auth_connections | openssl rand -base64 32 | .env.example 里的值是公开的,等于加密密钥公开 |
SESSION_SECRET | cookie 签名 | openssl rand -base64 48 | 任何人都能伪造会话 cookie |
E2E_TEST_MODE | 演示模式开关,缺省 0 | 填 0 | 置 1 会开放 /api/__test/*、mock 登录提供方、时钟可拨动 |
数据库连接(三个角色)
章节:数据库连接(三个角色)| 变量 | 角色 | 什么时候要改 |
|---|---|---|
DATABASE_URL | 应用,非 owner,受 RLS 约束 | 换库、换密码时 |
DATABASE_URL_MIGRATE | owner,仅迁移用 | 同上 |
DATABASE_URL_AUTH | 窄权限 + BYPASSRLS,仅 modules/identity 用 | 同上 |
三条必须是三个不同的角色。 合并任意两条都会让租户隔离静默失效——不报错、不告警,只是隔离没有了。为什么见多租户与行级安全。
.env.example 里的密码是 changeme,本地开箱可跑,生产必须换。
备份与对象存储
章节:备份与对象存储OBJECT_STORAGE_ENDPOINT / _BUCKET / _AK / _SK。
仅 deploy/compose.yml 的 wal-g 用:Postgres WAL 归档备份(PITR)的 S3 凭据。留空 = 不开归档,本地与试用不需要。生产建议配上——不配就只剩容器数据卷这一份数据。
可选集成
章节:可选集成| 变量 | 缺省 | 不配置会怎样 |
|---|---|---|
WECOM_ENABLED | 0 | 不显示企微扫码登录。启用需要真实企微应用与备案域名 |
SENTRY_DSN | 空 | 保持纯日志,不影响任何行为 |
DIGEST_WEBHOOK_URL | 空 | 每日摘要写日志而不是推送 |
MEMBER_REVIEW_NOTIFY_WEBHOOK_URL | 空 | 成员待审只写日志,功能照常 |
模块与授权
章节:模块与授权| 变量 | 说明 |
|---|---|
OPSKOOL_DEPLOY_MODE | 缺省 saas,读 org_entitlements 表;standalone 读授权文件 |
OPSKOOL_LICENSE_FILE | standalone 下的授权文件路径 |
OPSKOOL_CLOSED_MODULES | 闭源积木包名,逗号分隔 |
社区版把这三项全部留空即可:缺省 saas 模式读表,种子里那条全开记录管一切。见首次初始化必读与社区版与专业版对照。当前额度与授权到期时间见授权状态页与额度。
其他
章节:其他| 变量 | 缺省 | 说明 |
|---|---|---|
TZ | Asia/Shanghai | 业务时区锚定,DB 存 UTC |
PORT | 4800 | web 端口。要换端口得 export PORT=… 到 shell,写进 .env 来不及影响 CLI 选端口 |
JOBS_HEARTBEAT_INTERVAL_MS | 30000 | jobs 心跳间隔 |
SEED_DEMO_PASSWORD | 空 | 留空 = 播种时随机生成并打印一次(推荐)。见首次初始化必读 |
本页是 CE README「环境变量」一节的展开;两处不一致时,以 README 为准。
© 2026 OpSkool 办学帮 · 苏ICP备2025224982号-3