缺少 DATABASE_URL
缺少 BETTER_AUTH_SECRET
缺少 BETTER_AUTH_URL
缺少 APP_ENCRYPTION_KEY
请在部署平台的环境变量或 apps/web/.env.local 中填写并重新部署。
连接你的真实服务。
本站仅使用真实数据。数据库未连接、迁移未执行或服务未配置时,会显示具体错误;不会创建示例账户、域名或订单。
一次性配置启动环境
Vercel → 项目 subdomain → Settings → Environment Variables。本地将 .env.example 复制为 apps/web/.env.local。
DATABASE_URL=postgresql://用户名:URL编码密码@数据库域名:5432/subdomain1?sslmode=verify-fullBETTER_AUTH_URL=https://你的站点域名BETTER_AUTH_SECRET=独立随机密钥,至少 32 字符APP_ENCRYPTION_KEY=独立 32 字节随机值的 Base64 编码Better Auth 已内置于本站,不需额外部署;BETTER_AUTH_URL 填本站地址,BETTER_AUTH_SECRET 是自己生成的随机值。
分别执行 openssl rand -base64 32 生成不同密钥,保存后重新部署。加密主密钥必须单独备份,不可和密文放在同一数据库。APP_MODE 已不再控制运行模式。
AUTO_MIGRATE=true在 Vercel 填写 AUTO_MIGRATE=true 后重新部署,构建会自动创建或升级数据表。迁移失败会中止构建并显示原因。升级前先备份,也可在本地或宝塔终端执行 npm run db:migrate。
创建第一个管理员
设置 ADMIN_EMAIL 为你的注册邮箱,ADMIN_SETUP_TOKEN 为独立随机初始化码(至少 32 字符),重新部署。使用该邮箱注册登录后,在这里输入初始化码。成功后重新登录即可进入后台,不需要命令行。
数据库连接和迁移完成后,可在这里初始化管理员。
初始化只允许一次。完成后可删除这两个初始化环境变量;之后在后台管理角色。
在后台配置业务服务
管理员登录 → 管理后台 →「站点与服务」。填写 SMTP 主机、465/587 端口、账户、发件邮箱及密码;填写 Cloudflare API Token。保存即时生效,无需重新部署。
密码与 Token 使用 AES-256-GCM 加密入库。页面不会回显原值;留空保留原值,勾选清除后才能删除凭据。更改有审计记录,并检测多人编辑冲突。
邮件未启用时,注册登录可用,邮箱不会被标记为已验证;忘记密码与验证邮件暂停。启用邮件后可选是否强制验证,后台提供 SMTP 连接测试及发送测试邮件。
DNS Token 只开放运营者目标区域的 Zone Read、DNS Read、DNS Edit。根域名和 Zone ID 在「根域名」管理中配置;开放申请前验证区域归属。
进入管理后台配置定时执行器
在环境中设置独立随机的 CRON_SECRET。外部调度器每分钟请求 GET /api/jobs,使用 Authorization: Bearer 密钥 请求头。密钥不放 URL。或在云服务器每分钟运行 npm run worker:once。
任务负责 DNS 重试与未完成登记的超时释放。只填写密钥不代表调度已运行;后台可以查看失败任务、手动执行和重新排队。
当前功能边界
账号、免费结算、平台登记审核、DNS 管理、后台设置及用户角色管理均使用真实数据库与服务接口。付费支付、官方 ICP、第三方实名和完整年度到期 DNS 清理尚未开放;未实现的能力不会返回模拟成功。
完整配置文档