返回介绍

部署自己的工作空间。

应用和数据放在你的 Cloudflare 账户。
agent 接到你自己的机器上。一步一步来。

让 agent 帮你部署

把这段任务交给你的 coding agent。它会先核对账户、域名和授权,再按仓库的部署流程操作。

查看完整任务
请帮我部署我自己的 melancholy 工作空间。

源码:https://github.com/adayinthepark/melancholy
部署指南:https://melancholy.app/deploy/

先阅读仓库的 AGENTS.md、README.md、docs/architecture.md 和适用技能,核实当前版本的部署步骤。
1. 先确认我自己的 Cloudflare 账户、目标域名和资源名称;没有确认目标前,不执行远程资源创建或部署。说明 Workers Paid 从每月 $5 起,按用量计费;R2、模型推理和运行 CLI 的机器需要单独考虑。
2. 使用 Node.js 22+、npm ci 和仓库锁定的 Wrangler。检查当前授权和已有资源,不覆盖已有安装。
3. 在我的账户创建 D1 和私有 R2。修改 wrangler.jsonc 中的 Worker name、account_id、routes、WORKSPACE_NAME、D1 database_name/database_id 和 R2 bucket_name。不要使用源码中 async.love 的账户、域名或资源 ID。保留 Durable Object bindings、migrations 和 Cron。
4. 更新 package.json 中 db:local/db:remote 的数据库名称,向新数据库应用全部 D1 migrations。生成独立随机的 WORKSPACE_KEY 和 64 位十六进制 INTEGRATIONS_KEY,用 Wrangler secret 写入,提醒我安全备份 INTEGRATIONS_KEY。不要把密钥放进聊天、Git、日志或命令参数。
5. 运行 typecheck、Worker tests、connector tests、相关浏览器测试和生产构建,修复部署相关问题后运行 npm run deploy。
6. 检查 HTTPS 与登录页,引导我使用 workspace key 登录 owner,在 Profile settings 设置密码,在 Workspace settings → Members 创建邀请。
7. 如需 agent,在我自己的机器上安装并登录 Codex 或 Claude Code,在 Workspace settings → Servers 创建 server,保存配置到仓库外,以只读权限启动 connector。CLI 在这台机器运行,模型推理不在 Cloudflare 上。保持每个线程的 CLI session ID 与持久化事件去重,不提交 connector 配置和 journal。

先执行可以安全完成的检查,只询问缺失的账户、域名和必要授权。

开始之前

  • 一个自己的 Cloudflare 账户,开通 Workers Paid,并启用 R2。套餐从 $5 美元/月起,超额用量及其他产品按各自定价计费。
  • 一个由该账户管理的域名,例如 chat.your-domain.com。
  • 本地安装 Node.js 22+、npm 和 Git。
  • 如需连接 agent,另准备一台安装并登录 Codex 或 Claude Code 的机器。机器和模型费用另计。

下面是全新安装流程。升级已有工作空间,请先备份 D1 并阅读仓库的迁移说明。

1获取源码,登录 Cloudflare

所有命令都在源码目录中执行。使用仓库的锁文件安装依赖,并在浏览器中完成 Wrangler 授权。

终端
git clone https://github.com/adayinthepark/melancholy.git
cd melancholy
npm ci
npx wrangler login

也可以先 Fork 仓库,再克隆自己的版本,方便保存配置和接收更新。

2创建数据库和私有文件桶

先打开 wrangler.jsonc,将 account_id 改成你自己的 Cloudflare 账户 ID,再执行资源创建。账户 ID 可以从 Cloudflare 控制台复制;源码中的默认值属于作者。记录 D1 返回的 database_id,下一步会用到。

终端
npx wrangler d1 create my-melancholy
npx wrangler r2 bucket create my-melancholy-files

这些是新资源的示例名称。若同名资源已存在,请选用新的名称,并同步修改后续命令和配置。R2 保持私有,不开启公开访问。

3把配置换成自己的

源码的 wrangler.jsonc 指向作者的现有安装。将下面这些字段合并到原文件,替换账户 ID、D1 ID、域名和资源名称。

这是部分配置,不要用它覆盖整个文件。保留原有的 Durable Object bindings、migrations、Cron,以及其他运行配置。

配置示例
{
  "name": "my-melancholy",
  "account_id": "YOUR_CLOUDFLARE_ACCOUNT_ID",
  "routes": [
    { "pattern": "chat.your-domain.com", "custom_domain": true }
  ],
  "vars": { "WORKSPACE_NAME": "My workspace" },
  "d1_databases": [{
    "binding": "DB",
    "database_name": "my-melancholy",
    "database_id": "YOUR_NEW_D1_DATABASE_ID",
    "migrations_dir": "migrations"
  }],
  "r2_buckets": [{
    "binding": "FILES",
    "bucket_name": "my-melancholy-files"
  }]
}

将 package.json 中 db:local 和 db:remote 使用的数据库名也改成 my-melancholy。检查配置中已没有作者的账户 ID、资源 ID 或 async.love。

4初始化数据,设置密钥

生成两份独立的随机密钥。可以在本地分别执行两次 openssl rand -hex 32,将结果存入自己的密码管理器,再粘贴到对应的 Wrangler 交互提示中。

终端
npx wrangler d1 migrations apply my-melancholy --remote
npx wrangler secret put WORKSPACE_KEY
npx wrangler secret put INTEGRATIONS_KEY
WORKSPACE_KEY
至少 32 个字符,用于第一次登录 owner 账户。
INTEGRATIONS_KEY
64 位十六进制字符,用于加密集成凭据。与数据库分开安全备份;更换它会让已有的凭据无法解密。

密钥只输入本地受信任的工具。不要提交到 Git,也不要粘贴到聊天或公开日志。

5检查、部署,然后登录

运行项目检查,再执行部署。npm run deploy 会先构建应用,再将它发布到配置好的域名。

终端
npm run typecheck
npm test
npm run test:connector
npx playwright install chromium
test -f .dev.vars || cp .dev.vars.example .dev.vars
npm run test:e2e
npm run deploy

浏览器测试需要本地 .dev.vars,上面的命令仅在文件不存在时复制测试示例。示例值只用于本地测试;线上密钥使用上一步通过 Wrangler 写入的独立随机值。

打开自己的域名,选择 Use workspace key 登录。初始用户名是 owner;在 Profile settings 中设置密码和显示名称。

在 Workspace settings → Members 创建一次性邀请。每位成员用自己的账户加入,邀请七天内有效。

6接上自己的 agent 可选

在 Workspace settings → Servers 创建 server,选择 Codex 或 Claude Code。把生成的配置保存到运行 CLI 的机器上、源码仓库之外,例如 /path/to/melancholy.json。

在那台机器安装 Node.js 22+、安装并登录所选 CLI,然后检出与工作空间相同版本的源码并执行 npm ci。把配置中的 cwd 设成项目目录,从该 checkout 启动:

终端
chmod 600 /path/to/melancholy.json
node packages/connector/bin.mjs --config /path/to/melancholy.json

connector 主动建立出站 WebSocket,不需要在这台机器开放公网端口。默认权限为只读;需要修改代码时,由机器的管理者在本地配置 workspace-write。

owner 将 bot 加入频道后,用 @提及 交给它任务;与 bot 的一对一私信会直接触发任务。线程保留独立的 CLI 会话。

查看 connector 配置与常驻服务说明

接下来

需要桌面与手机通知,可以安装 PWA 并配置 Web Push。准备长期使用时,备份数据库和加密密钥,关注存储、写入量和 agent 日志的增长。

本指南核对于 2026-09-28。源码更新时,以仓库的 README 和迁移说明为准。

阅读最新部署说明