Talorys单Worker部署教程:不依赖Pages,一个Worker搞定前端与后端
Talorys单Worker部署教程:不依赖Pages,一个Worker搞定前端与后端
Talorys 是一个运行在你自己 Cloudflare 账号里的开源个人 AI Agent:聊天、记忆、任务、笔记和定时提醒全部自托管,数据存在你自己的 Durable Objects SQLite 中,无遥测、单用户、对免费套餐友好。默认安装方式会部署 Pages 前端 + 私有 Worker 后端 两个资源,而 Talorys 还支持一种单 Worker 部署模式:一个 Worker 同时托管 React 前端和 API 后端,不依赖 Cloudflare Pages,资源更少、配置更简单。本教程带你用 4 条命令完成这种单 Worker 部署。
为什么需要单 Worker 部署?
Talorys 提供两种部署形态:
| 维度 | 默认双资源部署 | 单 Worker 部署 |
|---|---|---|
| 前端 | Cloudflare Pages(静态站点) | Worker 静态资产(assets) |
| 后端 | 私有 Worker(无公网 URL) | 同一个 Worker |
| 连接方式 | Pages Function 通过 service binding 转发 /api/* |
/api/* 由 Worker 入口直接处理 |
| 资源数量 | 2 个(Pages + Worker) | 1 个 |
| 适用场景 | npx create-talorys@latest 一键安装 |
只部署单个 Worker 的工具(如 Appflare) |
在单 Worker 模式下,wrangler.standalone.jsonc 通过 assets 配置把编译好的前端 apps/web/dist 作为静态资产挂到同一个 Worker 上,并用 run_worker_first: ["/api/*"] 让 API 请求优先走 Worker 代码,其余请求由静态资产兜底(single-page-application 模式,刷新前端路由也不会 404)。
请求链路也变短了:浏览器不再经过 Pages Function,所有请求都打到同一个 Worker——静态资源直接返回,/api/* 则交给 src/index.ts 中的入口转发给 personal-agent 这个 Durable Agent,由 TalorysAgent 就近执行 API(Hono 路由定义在 src/api/app.ts)。
部署前置条件
在开始之前,请确认以下几点:
- Node.js ≥ 22:单 Worker 模式需要本地构建前端;
- Cloudflare 账号:免费 Workers 套餐即可,且已用
wrangler login完成登录(或准备好CLOUDFLARE_API_TOKEN+CLOUDFLARE_ACCOUNT_ID); - 一个强度足够的密码:至少 10 位、混合字母数字符号(或 16 位以上),且不含常见词——弱密码会被视为"未配置"。
💡 如果你不介意多一个 Pages 项目,直接运行
npx create-talorys@latest就能一键装好并自动验证,本文只覆盖手动单 Worker 流程。
单Worker部署四步走
第 1 步:克隆仓库并安装依赖
git clone https://gitcode.com/gh_mirrors/ta/talorys.git
cd talorys
npm install
仓库结构速览:前端在 apps/web/,后端在 apps/agent/,共享类型与工具在 packages/shared/。
第 2 步:构建前端产物
npm run build -w @talorys/web
这一步把 React 应用打包进 apps/web/dist,也就是 Worker 要挂载的静态资产目录。
第 3 步:写入两个必填 Secrets
单 Worker 模式的 Worker 是公网可达的,安全完全依赖应用内认证,所以必须设置:
cd apps/agent
npx wrangler secret put OWNER_PASSWORD -c wrangler.standalone.jsonc
npx wrangler secret put SESSION_SECRET -c wrangler.standalone.jsonc
OWNER_PASSWORD:明文主人密码,用于登录(当OWNER_PASSWORD_HASH已存在时,后者优先生效)。建议至少 10 位混合字符;SESSION_SECRET:会话密钥,至少 32 个随机字符,例如openssl rand -hex 24的输出。
第 4 步:部署
npx wrangler deploy -c wrangler.standalone.jsonc
部署完成后,Worker 的 workers.dev URL(或你绑定的自定义域名)就是唯一入口——前端和 API 都从这里出。该配置将 Worker 命名固定为 talorys,重复部署会覆盖账号中同名 Worker,想换个名字可以改配置里的 name 或加 --name 参数。
部署后验证:访问 /api/health
不打开任何 AI 推理,先确认部署是否健康。在浏览器访问 <你的URL>/api/health,期望看到类似:
{
"ok": true,
"version": "0.1.6",
"storage": "ok",
"configured": { "password": true, "session_secret": true },
"ai_binding": true,
"push": false
}
逐项检查:
configured.password: false→ 密码太弱或 secret 没写进去,重新secret put;configured.session_secret: false→ SESSION_SECRET 少于 32 字符;storage: "error"→ SQLite Durable Object 未就绪,稍后重试。
一切为 true/ok 后,打开页面输入 OWNER_PASSWORD 即可登录。登录后就能进入聊天(Chat)、记忆(Memory)、任务(Tasks)、笔记(Notes)和自动化(Automations)各页面。
可选增强:开启推送通知
Web Push 需要一对 VAPID 密钥,单 Worker 部署下同样以 secret 形式写入:
npx web-push generate-vapid-keys
npx wrangler secret put VAPID_PUBLIC_KEY -c wrangler.standalone.jsonc
npx wrangler secret put VAPID_PRIVATE_KEY -c wrangler.standalone.jsonc
配置后 /api/health 中 "push": false 会变为 true,提醒、任务日报和例行任务就能推送到你开启通知的手机/电脑(Settings → General 管理)。不配置也不影响其他功能,只是推送不可用。详细说明见 docs/deployment.md。
单 Worker 模式 vs 双资源模式:怎么选?
- 选单 Worker:你希望资源最少、URL 只有一个、或使用的部署工具(如 Appflare)只支持部署单个 Worker;
- 选双资源:你希望用
npx create-talorys@latest自动安装与update/doctor/reset-password全生命周期管理,且希望后端 Worker 无公网 URL(Pages 通过 service binding 私有转发/api/*)。
两种模式的功能完全一致:聊天、记忆、语义召回(可选)、任务、推送、定时任务都在。
注意事项与常见坑
| 问题 | 说明 |
|---|---|
| 部署后访问 404 | 前端尚未构建,先执行第 2 步再部署;确认 apps/web/dist 存在 |
| 登录一直失败 | 检查 OWNER_PASSWORD 是否通过强度校验(/api/health 的 password 字段) |
改 SESSION_SECRET 的后果 |
会登出所有设备,且 UI 中修改过的密码会回退到 OWNER_PASSWORD |
| 同名覆盖 | 配置固定 name: "talorys",重复部署会替换账号中同名 Worker,注意不要用该名字跑别的项目 |
| AI 额度用尽 | 聊天会提示"AI 分配已用尽",每日额度重置后自动恢复;任务、笔记、提醒等不依赖 AI 的功能不受影响 |
| 忘记主人密码 | 单 Worker 模式没有 reset-password 子命令兜底,直接重新 wrangler secret put OWNER_PASSWORD 即可 |
完整部署细节(幂等性、权限要求、真实账号冒烟测试)可阅读 docs/deployment.md;安全模型参考 docs/security.md;排障手册见 docs/troubleshooting.md。
小结
- Talorys 单 Worker 部署 = 构建前端(
npm run build -w @talorys/web)+ 两个 secret(OWNER_PASSWORD、SESSION_SECRET)+ 一条wrangler deploy -c wrangler.standalone.jsonc; - Worker 的
assets配置同时承担前端静态托管与 SPA 路由,run_worker_first: ["/api/*"]保证 API 优先命中后端; - 用
/api/health无推理验证部署,再按需补 VAPID 密钥开启推送; - 资源少、入口单一,适合追求极简部署的个人用户——一个 Worker,就是你的私有 AI Agent 全家桶。




