自托管
明确选择并验证数据库、对象存储和任务执行后端。
- 文档负责人:
- BlendDuck Documentation
- 最近复核:
BlendDuck 是一个可独立部署的 TanStack Start 应用。控制台、认证、原生 API、MCP 服务、任务和数据层不需要额外的 CMS 或应用后端。
本地单实例配置
export DB_DIALECT=sqlite
export SQLITE_PATH=./wooply.db
export STORAGE_DRIVER=local
export JOBS_BACKEND=inline
pnpm db:deploy
pnpm dev
SQLite、本地存储和 Inline Job 适合本地开发与受控的单进程运行,不适合横向扩展的生产环境。
数据库
| 类型 | 必需配置 | 适用场景 |
|---|---|---|
| PostgreSQL | DB_DIALECT=pg 和 DATABASE_URL | 共享、多实例生产环境 |
| SQLite | DB_DIALECT=sqlite 和 SQLITE_PATH | 本地、单实例环境 |
| Cloudflare D1 | DB_DIALECT=d1 和 D1 Binding | Cloudflare Worker |
必须显式设置 DB_DIALECT。数据库连接失败时,BlendDuck 不会静默切换到另一种数据库。
对选定环境执行迁移:
pnpm db:deploy
Cloudflare 生产环境使用以下命令,把已审核且兼容 SQLite 的迁移显式应用到远程 D1:
pnpm db:d1:migrate
对象存储
通过 STORAGE_DRIVER 选择 local、s3 或 r2。本地存储不适合横向扩展或临时计算环境。使用兼容 S3 的浏览器直传时,Bucket CORS 必须允许来自准确 APP_URL Origin 的 PUT 请求和 Content-Type Header。
后台任务
本地环境可使用 JOBS_BACKEND=inline。需要重试或必须在请求进程结束后继续执行时,应选择已配置的持久任务集成。无论执行后端如何变化,定时任务恢复和发布重试状态都会持久保存。
认证与外部地址
APP_URL 是 Better Auth、社交平台回调和 MCP OAuth 的标准 Origin。生产环境只应有一个公开 HTTPS Origin;反向代理必须保留原始 Host、Protocol、Authorization 和 MCP 协议 Header。
仅当未配置邮件服务时,开发环境的邮件验证码才会写入服务端控制台。生产环境必须配置 RESEND_API_KEY 和 EMAIL_FROM。
安全材料
安全备份 ENCRYPTION_KEY。它用于加密平台凭据,并且必须与 BETTER_AUTH_SECRET 独立。两者都应通过部署平台的 Secret Store 配置,不要提交到环境文件。
验证
使用快速开始完成首次端到端运行。除了验证 Node 或 Cloudflare 构建,还要逐个验证计划使用的外部平台连接;应用构建成功并不能证明平台凭据或平台审核状态有效。