自托管指南
运行你自己的 HiBoss 服务器
HiBoss 没有托管服务。按照这份指南,你可以从一个空的 Cloudflare 账号开始,一直走到在手机上回答智能体的第一个问题。
准备工作
1. 部署服务器
克隆仓库,安装依赖,并从示例生成配置文件:
git clone https://github.com/sunoj/hiboss.git
cd hiboss
cp server/wrangler.toml.example server/wrangler.toml
npm ci
登录 Cloudflare,然后创建 D1 数据库和 R2 存储桶:
cd server
npx wrangler login
npx wrangler d1 create hiboss-db
npx wrangler r2 bucket create hiboss-attachments
把 d1 create 输出的 database_id 填进 server/wrangler.toml。如果你不部署网页控制台,删掉其中的 CONSOLE_ORIGIN 一行。
开始部署。这一步会先执行数据库迁移,任何一个迁移失败都会停下,全部成功后才发布 Worker:
npm run deploy
Wrangler 会打印服务器地址,例如 https://hiboss-server.<你的子域>.workers.dev,后面会用到。
2. 设置引导密钥
第一台机器要靠引导密钥(bootstrap secret)创建你的负责人账号并完成登记。没有设置它时,服务器会拒绝这两个操作。生成一个随机值,妥善保存,再把它存为 Worker 密钥:
openssl rand -hex 32
npx wrangler secret put BOOTSTRAP_SECRET
Wrangler 提示时粘贴这个值。它只在服务器还是空的时候有效:你和第一台机器建好之后,任何人都无法再用它重新引导。
3. 安装命令行
在运行智能体的机器上执行:
curl -fsSL https://hiboss.org/install.sh | sh
也可以用 Rust 从仓库构建:cd cli && cargo build --release,再把 target/release/hiboss 放进 PATH。
4. 设置第一台机器
hiboss setup --server https://hiboss-server.<你的子域>.workers.dev \
--bootstrap-secret <你的密钥> --boss-name "你的名字"
密钥也可以通过环境变量 HIBOSS_BOOTSTRAP_SECRET 传入,命令行不会把它打印出来。--boss-name 是应用里显示的你的名字;不填时,命令行会用你的系统账户名,或者直接问你。
在空服务器上,setup 会创建你的负责人账号,并打印配对链接、链接的二维码、配对码和过期时间。配对码只能用一次,五分钟后过期。随后 setup 会向服务器申请登记这台机器,并等待你批准。
5. 配对 iPhone 或 Mac
- iPhone:打开 HiBoss,点扫码,扫描终端里的二维码。
- Mac:打开 HiBoss,进入设置 → 连接,选择使用配对码配对…,粘贴链接或配对码。
配对后,应用会获得自己的设备凭据,保存在钥匙串里。链接里只有服务器地址和一次性配对码,从不包含令牌。配好一台设备后,可以从它添加另一台:在 iPhone 设置里用配对其他设备,或在 Mac 上选用 iPhone 登录。
6. 批准这台机器
应用里会出现这台机器的登记请求,附带一个六位数代码。确认它和终端里显示的一致,然后批准。setup 随即完成并保存这台机器的配置。如果 setup 中途被打断,再运行一次 hiboss setup 就会接着处理同一个请求。
hiboss setup --check
7. 接入智能体
hiboss setup agents # 为 Claude Code 和 Codex 写入使用说明
hiboss setup hooks --global # 安装 Claude Code 钩子,接收你的回复
hiboss send "智能体发来的第一条消息"
hiboss ask --option "收到" --option "没收到" "这条消息到你手机上了吗?"
问题会出现在应用里,你的回答会回到终端。其余用法见智能体指南(英文)。
添加更多机器
在已配置的机器上运行 hiboss device invite --copy,把生成的提示粘贴给新机器上的智能体。它会按需安装命令行、运行 setup,然后等你在应用里批准。
Telegram 与 Discord(可选)
只用应用就够了。如果还想在聊天应用里收消息,可以运行引导式设置:
hiboss setup telegram
hiboss setup discord
也可以直接配置渠道,例如 Discord webhook:
hiboss channel set discord --webhook-url <WEBHOOK_URL>
如果 Telegram 向导用到了 webhook 密钥,它会提醒你在服务器上设置同样的值:npx wrangler secret put TELEGRAM_WEBHOOK_SECRET。
推送通知
App Store 版 iPhone 应用开箱即可收到推送。没有自己 Apple 推送通知服务(APNs)密钥的服务器,会通过 HiBoss 推送中继 push.hiboss.org 发送通知,中继持有该应用的 APNs 密钥。
通知内容在你的服务器和 iPhone 之间端到端加密:iPhone 应用生成密钥,只交给你的服务器;中继和 Apple 只能看到一条通用提醒和密文。中继能看到你服务器的 IP 地址、该安装的随机句柄,以及每次推送的时间。
要关闭中继,在 server/wrangler.toml 的 [vars] 中设置 PUSH_RELAY_URL = "off",iPhone 应用随后会提示这台服务器无法推送。要直接推送,设置 APNS_KEY_ID、APNS_TEAM_ID 和密钥 APNS_AUTH_KEY。配置了自己密钥的服务器从不使用中继。直接推送的密钥必须属于给应用签名的 Apple 团队,因此适用于你自己构建的应用。使用中继时,实时活动在应用打开期间更新。
更新
git pull
npm ci
cd server && npm run deploy
新版 Worker 发布前会先执行数据库迁移。