自托管 AI 智能体

Doitx 是一个面向持久型队友的开源 AI 智能体。每个机器人都能使用浏览器和终端、把例行任务保存为 Markdown,并在工作触及你设定的边界时暂停等待批准。自托管意味着这套系统运行在你自己的机器上。

软件以 Apache-2.0 许可证发布。托管的 Doitx Cloud 处于 beta 阶段。这一页是运行它所需的设置步骤。GitHub 上的完整自托管指南还涵盖备份、升级、密钥、受限网络和生产环境 Compose。

Diagram of a Doitx deployment. Web, desktop, and mobile clients talk to an API. A worker and Postgres sit beside it. The computer defaults to Docker, with E2B, Daytona, CreateOS, or Boat optional. Model prompts go to the provider you configure.
A Doitx deployment. Postgres, bot files, and the audit log stay on the machine you run. Prompts still go to the model provider you choose.

自托管给你带来什么

数据归属

Postgres、机器人文件、浏览器配置和审计日志都留在你自己运行的部署上。你发送给模型提供商的内容由该提供商按其条款处理。提供商和密钥都由你选择。

模型选择

连接 Doitx 路由器,或运维方自建的 OpenAI 兼容服务器。每个人使用自己的密钥,每个机器人可以使用不同的模型。

成本控制

开源软件本身不收席位费。你只需为连接的模型提供商和你选择的远程算力提供商付费。默认使用本地 Docker 算力,因此单台机器不需要 E2B、Daytona、CreateOS 或 Boat 账号。

目前仅限自托管

以下功能可在你自己的部署中启用,Doitx Cloud 尚未提供。每项都在 .env 中开启。

  • Telegram、WhatsApp、iMessage 与短信、飞书与 Lark。 填入对应平台的凭据:TELEGRAM_BOT_TOKEN、WHATSAPP_*、SENDBLUE_*(iMessage 与短信)或 LARK_*。
  • 图像与视频生成。 MEDIA_GENERATION_PROVIDER=fal、MEDIA_GENERATION_API_KEY,以及图像或视频模型(MEDIA_GENERATION_IMAGE_MODEL、MEDIA_GENERATION_VIDEO_MODEL)。
  • 使用 Stripe Link 付款。 PAYMENT_WALLET_PROVIDER=link。每笔付款都会在 Link 中等待你批准。
  • Cursor 云端智能体。 CLOUD_AGENT_PROVIDER=cursor、CURSOR_API_KEY 和 CLOUD_AGENT_SPACE_ID。
  • 工单看板。 TICKET_BOARD_ENABLED=true。
  • 本地模型与本地 MCP 服务器。 RAKAZO_LOCAL_MODELS,以及 MCP_STDIO_ENABLED 配合 MCP_STDIO_ALLOWED_COMMANDS。

完整指南列出了每一项的全部设置。

环境要求

  • 使用已发布的镜像。 需要 Docker Engine 26 或更高版本(API 1.45 或更高,用于机器人主目录卷子路径)、Compose 插件、curl 和 OpenSSL。无需安装 Node.js。
  • 源码检出。 需要 Node.js 22.x 系列的 22.22.2 或更高版本、Node.js 24.x,或 Node.js 26 及更高版本,加上 pnpm 9 和 Docker。不支持 Node.js 23.x 和 25.x。

用已发布的镜像安装

在应运行 Doitx 的机器上,从一个空目录开始:

mkdir -p doitx && cd doitx &&
curl -fsSLO https://raw.githubusercontent.com/iishows/doitx/main/infra/compose/install-images.sh &&
bash install-images.sh

安装程序会下载 Compose 文件和 .env.images.example,生成带随机密钥的 .env,并启动 Doitx。再次运行时它会保留已有的 .env。默认镜像标签是 edge(从主分支构建,支持 linux/amd64 与 linux/arm64)。

打开 http://127.0.0.1:5173 并创建账号。第一个注册的用户成为部署所有者。在应用里连接模型,或在启动前设置 RAKAZO_DOITX_API_KEY。本地 Docker 算力默认开启。

Doitx 中新建机器人的表单,填入了一个名为 Inbox 的示例机器人。
在 Doitx 应用中创建机器人。这里的名称、标题和描述都是示例数据。
机器人设置中展开的模型菜单,作用于示例 Inbox 机器人。
每个机器人可以使用不同的模型。此菜单列出该部署已连接凭据可用的模型。
用于工作日收件箱检查的例行任务编辑器,指令以文本形式书写。
例行任务就是带排程的可读文本,你可以在应用里编辑它。
一张审批卡片,询问示例机器人是否可以发送邮件,选项为允许一次、始终允许和拒绝。
当工作触及你设定的边界时,机器人会停在审批卡片上。该操作也会写入审计日志。

如需由智能体辅助安装,请使用安装提示词。

在服务器上运行

当机器人需要持续运行时,在 VPS 上使用同一个安装程序。镜像版 Compose 会把 Web 应用绑定到回环地址 127.0.0.1:5173。在主机上终止 TLS 并代理到该地址。不要对外发布 3100 端口。Web 服务器会代理 /api。

bash install-images.sh --prepare-only
# Edit .env, then:
bash install-images.sh

在执行第二条命令前,把 RAKAZO_HOST 设为域名,并把 BETTER_AUTH_URL、WEB_ORIGIN 和 API_URL 设为同一个 https:// 源。若要使用远程算力而非本地 Docker,把 SANDBOX_PROVIDER 设为 e2b、daytona、createos 或 boat,并填入该提供商的 API 密钥。

app.example.com {
	reverse_proxy 127.0.0.1:5173
}

把 app.example.com 换成你的域名。桌面客户端应使用 现有实例 选项并填入 https:// 地址。公网单机部署章节涵盖生产 Compose、主机加固、注册白名单和 SMTP。

如果下载被阻断,请使用受限网络指南。密钥名称与恢复方式见密钥清单。

从源码安装

这条路径用于开发 Doitx。仅运行的话,上面的已发布镜像就够了。

git clone https://github.com/iishows/doitx.git
cd doitx
cp .env.example .env

把 POSTGRES_PASSWORD 和 POSTGRES_APP_PASSWORD 设为两个 URI 安全的随机值(例如 openssl rand -hex 16),并填入 DATABASE_MIGRATION_URL 和 DATABASE_URL。把 BETTER_AUTH_SECRET、ENCRYPTION_KEY 和 SCREEN_PROXY_SECRET 设为互不相同的长随机值。Docker 沙箱还需要专属的 SANDBOX_SUPERVISOR_TOKEN。这些值放在 .env 里,不要提交到 git。

使用 Docker Desktop 做主机侧开发时,在 .env 中设置 SANDBOX_CONTROL_VIA_LOOPBACK=true。这样 supervisor 会在回环端口上发布其控制服务,因为主机无法访问 Docker Desktop 的容器地址。当 supervisor 运行在 Compose 内时,不要设置它。

docker compose --env-file .env \
  -f infra/compose/docker-compose.yml \
  -f infra/compose/docker-compose.postgres-host.yml \
  up postgres -d
pnpm install
pnpm db:generate
pnpm db:migrate
pnpm sandbox:build
pnpm dev

Postgres overlay 会为宿主机工具发布回环地址 127.0.0.1:5433。打开 http://127.0.0.1:5173。docker compose down -v 会删除 Postgres 数据。

桌面端与移动端

服务器已在运行时,Electron 应用的 现有实例 选项接收它的 https:// 地址。HTTP 只对回环地址和私有局域网地址放行。本机 选项会用 Docker Compose 在该机器上安装已发布的镜像。

在 Mac 上用桌面应用运行。本机会把 Doitx 安装到那台 Mac 上。一台 Mac Mini 可以常开作为常驻主机。

在移动应用中,于登录界面点击 使用自定义服务器,填入与 WEB_ORIGIN 相同的 HTTPS 源。

完整参考

FAQ

自托管 Doitx 需要什么?

使用已发布的镜像需要 Docker Engine 26 或更高版本、Compose 插件、curl 和 OpenSSL,这条路径无需 Node.js。源码检出需要 Node.js 22.x 系列的 22.22.2 或更高版本、Node.js 24.x,或 Node.js 26 及更高版本,加上 pnpm 9 和 Docker。不支持 Node.js 23.x 和 25.x。

我的数据存在哪里?

Postgres、机器人文件、浏览器配置和审计日志都留在你自己运行的部署上。你发送给模型提供商的内容由该提供商按其条款处理。提供商和密钥都由你选择。

模型选择和费用怎么算?

每个人为自己连接部署两种模型来源之一——Doitx 路由器或由运维方运行的本地端点——的密钥。每个机器人可以选择不同的模型。开源软件本身不收席位费,你只需为使用的模型和算力提供商付费。本地 Docker 算力是默认选项,不需要托管沙箱账号。

有托管的 Doitx 吗?

有。Doitx Cloud 正在 app.doitx.ai 进行 beta 测试,同时也支持自托管。

和 OpenClaw 相比如何?

两者都是开源项目,都运行在你掌控的硬件上。完成 Docker 或桌面端安装后,Doitx 就是一个面向持久型队友的聊天界面。OpenClaw 的入门指南还要多出向导、一个在终端运行或作为后台服务安装的 Gateway,以及单独一步来连接聊天应用。

相关内容

开始使用

按上面的步骤自托管,或从 Doitx Cloud 开始。