返回所有文章
2504 字9 分钟阅读访问统计加载中

DeverDesk:独立开发者的开源工作台,任务、副业、收支和时间放在一处

开源项目CloudflareAI

DeverDesk 是我写的一个开源工作台,给同时经营几个副业的独立开发者用。任务、副业、收支、投入时间和每周复盘放在同一处,而且连在一起:每个任务、每段投入时间、每笔收支都可以归到某个副业下,打开副业页就能看到每个副业做到哪一步、这个月花了多少时间、进了多少钱。它有两个版本:本地版打开网页就能用,数据只存在浏览器里;在线版部署在你自己的 Cloudflare 账号上,手机和电脑同步,Cloudflare 的免费额度够一个人用。代码以 AGPL-3.0 开源,没有付费版,也没有锁起来的功能。

DeverDesk 的「今天」页:左边是今天的计划和两件延期的任务,中间是时间线,右边是例行、本月净收入对照目标和待到账

一张工作台上管哪些事

一个人做几个副业,信息容易散在几个工具里:待办清单记着答应了什么,日历记着哪天忙,记账表记着钱。DeverDesk 用「副业」把这些记录串起来。演示站的样例数据里,侧栏列着六个副业:模板商城、接口中转、技术博客、付费咨询、公众号和前端小课,任务、计时和收支都可以挂在其中一个下面,不属于任何副业的个人杂事也能记。

八个页面按要做的事分成四组:

要做的事页面能做什么
安排时间今天、本周把任务拖进时间线,拖下边改时长,或者一键自动排;容量条标出排超的部分;之前没做完的一键挪到今天
管待办任务、例行看板和列表随时切换,按状态、副业或优先级分组;每天、每周、每月的例行事务记连续期数
管钱收支待到账固定在最上面,过了约定日还没到会提醒;标记到账、退款,导出表格
看进展副业、概览、回顾副业按构思、搭建中、运营中排成看板;概览用同一张走势图切换净收入、投入时间、时薪和完成任务四个指标;每周自动写一段小结

记一件事只要一行字。在快速添加里输入 写周报 30m #技术博客 明天 !!,会识别成 30 分钟、副业「技术博客」、明天、高优先级,中文和英文写法都认。按 Ctrl / ⌘ K 打开命令面板,任务、副业和收支都能搜到。

副业页:构思、搭建中、运营中三列看板,每张卡片显示本月收入、投入小时、月目标进度和下一个里程碑

收支页把还没到账的钱单独放在最上面。记一笔待到账时填上约定日期,过了这天还没标到账,右上角会提醒。下图的样例数据里,一笔赞助首付已经逾期 4 天,另外两笔约定 10 月 5 日到账。

收支页:最上面是 3 笔待到账,标着「逾期 4 天」和「约定 10/5」;下面按月列出到账记录,带副业、分类和收款渠道

数据存在哪:本地版和在线版

两个版本来自同一套代码,打包时选一个:

本地版在线版
数据存在哪只在当前浏览器里你自己 Cloudflare 账号里的 D1 数据库
多设备不同步按条同步,断网照常用
登录不用访问口令,或者 Cloudflare Access
怎么用打开 app.deverdesk.com部署到自己的 Cloudflare

D1 是 Cloudflare 提供的 SQLite 数据库。在线版的改动先存进浏览器,排队上传,再拉取其他设备的新记录;断网时队列留在本机,联网后自动补传。两台设备改了同一条记录,修改时间较新的那版留下,其余记录照常按条合并。两个版本的数据都不经过我的服务器:本地版的在你的浏览器里,在线版的在你自己的 Cloudflare 账号里。从本地版换到在线版,导出一份备份再导入就行。更多细节见本地版和在线版:你的数据到底存在哪。

部署到自己的 Cloudflare

在线版由三部分组成:Next.js 导出的静态页面、负责接口的 Cloudflare Worker 和 D1 数据库,三者作为一个 Worker 一起部署。一个人日常用,读写量远低于 Cloudflare 的免费额度。

最快的办法是仓库 README 里的「Deploy to Cloudflare」按钮:授权 GitHub 之后,Cloudflare 在你的账号下复制一份仓库、建好 D1 数据库,你填一个访问口令 DEVERDESK_PASSWORD,打开分配给你的 *.workers.dev 地址就能用。以后往这份副本推送代码,它会自动重新部署。

也可以用命令行部署,需要 Node.js 22 以上和 pnpm 10:

git clone https://github.com/evepupil/DeverDesk.git
cd DeverDesk
pnpm install
pnpm exec wrangler login
pnpm build
pnpm run deploy
pnpm exec wrangler secret put DEVERDESK_PASSWORD

pnpm run deploy 先把建表脚本应用到线上数据库,再部署 Worker。访问口令登录一次管 30 天,同一个 IP 输错 10 次要等 15 分钟才能再试;也可以把 Worker 放到 Cloudflare Access 后面,用它的统一登录。想换成自己的域名,在 Cloudflare 后台给这个 Worker 加一个自定义域名。完整步骤见五分钟把 DeverDesk 部署到你自己的 Cloudflare。

让 AI 助手帮你记、帮你排

在线版同时是一个 MCP 服务,地址是 https://你的域名/mcp。MCP 是让 AI 助手调用外部工具的统一协议。连上之后,可以直接对 AI 助手说「看看我今天还剩什么没做」「记一笔:模板商城收入 200」「把没排日子的任务排进今天的空档」。

客户端怎么连
Claude Code、Codex、Cursor、VS Code在「连接 AI」里新建令牌,复制对应客户端的配置;也可以只填地址,连接时在浏览器里点允许
ChatGPT、Claude 网页版和手机 App填连接器地址,在 DeverDesk 的授权页登录、选权限、点「允许」

Claude Code 用令牌连的写法:

claude mcp add --transport http deverdesk https://你的域名/mcp \
  --header "Authorization: Bearer dd_你的令牌"

每个连接选一档权限:「只看」只能读数据;「只能提议」是默认档,AI 想改的内容先排队,你在「AI 动态」里采纳才生效;「直接改」立即生效,随时可以撤销。AI 的每次改动都留底,删除或者一次改超过十条,会先给你看预览。详细说明见让 AI 助手连上你的 DeverDesk:MCP 和 OAuth 怎么用。

写代码的时间自动记下来

用 Claude Code 或 Codex 写代码时,可以装一个本机记录器,把写代码的时间和任务自动记进对应的副业。先在副业的「目录名」里填项目文件夹的名字,在「连接 AI」里新建一个「直接改」权限的令牌,再装 Claude Code 插件:

claude plugin marketplace add evepupil/DeverDesk
claude plugin install deverdesk@deverdesk --config server_url=https://你的域名 --config token=dd_你的令牌

用 Codex 的话,从仓库下载 integrations/claude-code/bin/deverdesk-recorder,运行 node deverdesk-recorder setup --url https://你的域名 --token dd_你的令牌 --install-codex-hooks。记录器按这几条规则记:

记什么规则
时间你发出一条消息开始计时,15 分钟没有动静就停;AI 独自运行最多算 15 分钟;同时开几个窗口时平分,总数不超过真实流逝的时间
任务上一次提交到这次提交之间的工作记成一个已完成任务,名字取自提交说明;很小的提交并进上一个任务;提交说明里写 Closes T-123,就把已有的任务 T-123 标成完成
上传什么只有绑定了副业的文件夹会上传,其余内容留在本机的 ~/.deverdesk 里

任务在提交后约 15 分钟出现。今天页的时间线旁边多出一条「实际」轨道,计划的时间和实际花的时间可以对着看。

如果你也想用

先打开演示站看看,它是带样例数据的本地版,改动只留在你的浏览器里。要在手机和电脑上用同一份数据,就部署在线版,再把本地版的备份导入进去。

本地开发需要 Node.js 22 以上和 pnpm 10。pnpm dev 同时跑页面(3000 端口)和接口(8787 端口),本地访问口令是 dev;pnpm dev:local 只跑本地版页面,不需要接口和数据库。页面用 Next.js 16 静态导出、React 19、TypeScript 严格模式、Tailwind CSS 4 和 shadcn/ui,后端是 Cloudflare Workers 和 D1。除了 Vitest 单元测试,仓库里还有两个核对脚本:pnpm probe 用 Edge 在打包好的本地版上把核心操作中英文各点一遍,pnpm e2e 在本机起接口,模拟两台设备登录并互相同步。

读代码可以从 src/domain/ 开始,这里只放计算逻辑,比如排期、例行、收支、指标和快速添加解析;worker/ 是登录、同步、MCP 服务和自动化接口;docs/roadmap.md 记着里程碑和各模块的设计。路线图上还没做的一项是从收款平台自动导入收入。问题和建议可以提在 GitHub Issues。

参考资料

喜欢这篇文章?

如果这篇文章帮到了你,可以请我喝杯咖啡,支持我继续写下去。

评论