文档 / 团队功能

自建 WhatsTant 云同步

WhatsTant 不要求云服务。留空 Sync URL 和 Sync Token 时,聊天记录和媒体只保存在本机。

需要团队多设备同步时,可以部署 WhatsTant 同步 Worker;它使用 D1 保存消息、画像和评分,使用 R2 保存媒体。代码仓库即将公开。

准备与部署

先安装 Node.js,并在代码仓库根目录进入 worker/

wrangler login
wrangler d1 create <name>

把命令返回的 database_id 填进 worker/wrangler.toml[[d1_databases]]database_name 可以使用刚创建的名称。然后创建 R2 bucket,并把 bucket_name 改成同一个名称:

wrangler r2 bucket create <name>

设置一个足够长、随机且只在团队内部保存的主 Token:

wrangler secret put SYNC_TOKEN

最后部署:

wrangler deploy

把 Wrangler 输出的 Worker URL(例如 https://your-worker.example.workers.dev)和刚才的 Token 填入 WhatsTant 的“云同步设置”,保存后可点“立即同步”验证。

自定义域名

workers.dev 在中国大陆可能无法访问或不稳定。建议在 Cloudflare Worker 的 Settings → Domains & Routes 中绑定自定义域名,再把该 HTTPS 地址填入 WhatsTant。更换地址时 App 会要求重新输入 Token,防止旧 Token 被意外发送到新站点。

按成员发放 Token

SYNC_TOKEN 可以管理 D1 的 sync_tokens 表。Worker 提供以下接口,均使用主 Token 的 Authorization: Bearer <SYNC_TOKEN>

成员 Token 与主 Token 访问同一份团队数据,但可以单独吊销。日常设备建议使用成员 Token,主 Token 只用于管理。

本地模式说明

未配置同步时,媒体只落盘,不进入待上传队列,也不会被缓存清理。之后再配置同步,只会上传配置后新保存或重新抓取的媒体;此前的本地媒体不会自动补传。