快速开始
- Node.js 22.12+(Astro 7.2.8 的最低要求)
- pnpm 10.34.5(以根目录
packageManager为准) - PostgreSQL;当前生产使用 Neon
- Git
1. 安装依赖
Section titled “1. 安装依赖”pnpm install2. 配置环境变量
Section titled “2. 配置环境变量”cp apps/server/.dev.vars.example apps/server/.dev.varscp apps/web/.dev.vars.example apps/web/.dev.varspnpm env:check服务端本地变量统一放在 apps/server/.dev.vars。至少配置:
BETTER_AUTH_SECRET=replace-with-a-random-32-char-secretBETTER_AUTH_URL=http://localhost:8787/api/authCORS_ORIGIN=http://localhost:3000AUTH_EMAIL_FROM=IAM <no-reply@example.com>DATABASE_URL=postgresql://username:password@host/database?sslmode=requireDATABASE_URL_DIRECT=postgresql://username:password@host/database?sslmode=requireNODE_ENV=development
# 本地 Node 模式监听端口,默认 8787PORT=8787可选能力还需要:
- 企业微信登录:
WECOM_CORP_ID、WECOM_AGENT_ID、WECOM_APP_SECRET、代理 URL 与 API Key - 通讯录同步:同步 secret、
WECOM_FULL_SYNC_CRON_TOKEN、回调 token 与 AES key - 平台管理员:由已有平台管理员在用户管理页设置,角色存储在数据库
user.role。 - 认证邮件:生产由 Worker
EMAILBinding 和AUTH_EMAIL_FROM提供 - 应用开通投递开关:
PROVISIONING_DELIVERY_ENABLED,设为false时只对账不投递;不配置则默认投递
OA_PROVISIONING_* / CRM_PROVISIONING_* 只是旧版开通配置的兼容变量,用于首次自动导入到同步连接表,新应用直接在管理端配置,本地开发通常不需要。
前端 apps/web/.dev.vars 在本地通常只需要:
AUTH_UPSTREAM_URL=http://localhost:8787生产环境不需要 AUTH_UPSTREAM_URL,Web Worker 使用 AUTH_API Service Binding。
3. 初始化数据库
Section titled “3. 初始化数据库”对已有 migration 执行:
pnpm db:migratepnpm db:push 只用于本地临时验证 schema,不应代替可审查的 migration。
如果修改了 Better Auth 插件或认证字段,使用固定版本重新生成 schema,再生成并执行 migration:
pnpm dlx auth@1.7.1 generate --yes \ --config packages/auth/src/index.ts \ --output packages/db/src/schema/auth.tspnpm db:generatepnpm db:migrate4. 启动服务
Section titled “4. 启动服务”推荐分别启动 Web 与 Worker 兼容 API,以匹配文档中的 8787 端口:
# 终端 1pnpm dev:server:worker
# 终端 2pnpm dev:web也可以运行 pnpm dev,它会通过 Turbo 启动 Web 和 Node 模式 server。
- 运行
pnpm env:check,确认必填变量和可选功能组完整。 - 打开 http://localhost:3000。
- 访问 http://localhost:8787/api/health 检查 API、企微和邮件配置状态。
- 注册邮箱账号或使用已配置的企业微信登录。
- 运行
pnpm check和受影响测试。
本地未配置 Cloudflare Email Binding 时,验证/重置邮件内容会输出到服务端日志;生产环境缺少 Binding 会直接报错。