一条命令,把 Agent 的共享记忆装到 5 美元的服务器上
StateDock Local 现在可以一条命令装到任何 Linux VPS 上,作为 systemd 服务常驻:不用 Docker,不用另装数据库,每次升级自动备份、失败自动回滚。
StateDock Local 一开始是一个装在电脑上的应用:下载、双击,你的 Coding Agent 就有了一个共同记录目标、决定、待执行任务和交付结果的地方。
但电脑会睡眠。VPS 上的 Agent 连不上它,手机看不到进度,凌晨三点定时跑起来的任务也领不到活。
0.1.0 版解决了这个问题:同一个程序现在可以作为常驻的小服务器运行,安装只要一条命令。
一条命令
任何使用 systemd 的 Linux(Ubuntu、Debian、Fedora……),x64 或 ARM64 都可以:
curl -fsSL https://raw.githubusercontent.com/statedock/statedock-local/main/scripts/install.sh \
| sudo bash -s -- --public-url https://dock.example.com
大约一分钟后你会得到:
- 一个名为
statedock的服务,开机自启、崩溃自动重启,以独立的无特权用户运行; - 程序在
/opt/statedock,数据在/var/lib/statedock,配置在/etc/statedock/statedock.env; - 一个访问令牌:
sudo statedock token就能看到。
不用 Docker,不用 Node.js,不用 Postgres。发布包自带运行时,数据就是一个 SQLite 文件,1 核 1G 的机器跑起来绰绰有余。
还没有域名?去掉 --public-url 也能装,先在服务器本机上跑起来,域名以后再加。
让它能被访问
默认只监听 127.0.0.1:4040,在你决定怎么开放之前,什么都不会暴露出去。最简单的办法是用 Caddy,它会自己申请 HTTPS 证书:
dock.example.com {
reverse_proxy 127.0.0.1:4040
}
不想开放任何端口的话,也可以用 Cloudflare Tunnel 或 Tailscale 指向 http://127.0.0.1:4040。
一个所有者,一个令牌
在服务器上,StateDock 会进入服务器模式。没有账号、角色、邀请要管理,只有一个令牌:
- 浏览器在
/login登录一次,保持 30 天; - Agent 把它作为 Bearer 令牌发送;
- 除了健康检查和静态文件,所有访问都需要它。
以 Claude Code 为例:
claude mcp add --transport http statedock https://dock.example.com/mcp \
--header "Authorization: Bearer 你的令牌"
Cursor、Codex、Windsurf 等 MCP 客户端用同样的地址和请求头。万一令牌泄露,删除 /var/lib/statedock/agent_token 再重启服务即可:会生成新令牌,所有旧的登录同时失效。
升级不会弄丢数据
我最在意的,恰恰是最不起眼的这一条:
sudo statedock-ctl update
它会下载新版本并校验 checksum,停止服务,把数据库的一致性快照写到 /var/lib/statedock/backups/,然后切换到新版本,等它报告正常。
如果新版本 30 秒内没起来,脚本会恢复快照、切回旧版本并重新启动。结果只有两种:要么升级成功,要么原样回到升级前。
最近三个版本会保留在磁盘上。statedock backup 随时可以手动做一次快照,运行中也可以。
Docker 还在,只是变薄了
如果你的服务器上全是 Docker,ghcr.io/statedock/statedock 就是装在容器里的同一个程序,仓库里还带了一份搭配 Caddy 的 Compose 文件。不再有一个会落后于主线的独立 Docker 版:原来的 statedock-docker 仓库已经归档,它的 ./data 目录可以直接给新镜像用。
数据到哪儿都一样
电脑、VPS、Docker 运行的是同一个程序、同一种数据库格式。先在电脑上用着,想让它 24 小时在线时,停掉它,把 ~/.statedock/statedock.db 复制到服务器上,再启动服务就行。数据库迁移会自动向前执行。
试试看
- 源码、下载和完整说明:github.com/statedock/statedock-local
- 服务器相关细节(HTTPS、配置、回滚、Docker):docs/server.md
- 不想自己维护服务器?可以用托管版 StateDock Cloud。
StateDock Local 基于 AGPL-3.0 开源。如果安装脚本在你的发行版上出了问题,欢迎带上输出开个 issue,这正是这个版本最需要的反馈。
