【开源】基于CF的InstaBox多账号多机器保活管理面板

把多个 InstaBox 账号的机器放进一个私人面板,随时查看状态、打开终端,还能自动保活、通过 Telegram 收到离线提醒和远程操作。

github项目地址:GitHub - meicuode/InstaBoxPanel · GitHub

InstaBox 是什么?

InstaBox 是云端 Linux 机器平台,可用于搭建开发环境、运行脚本和应用。它提供机器管理、终端访问和 API,支持启动、停止、暂停与恢复;暂停通常保留工作现场,方便下次继续使用。具体机器配置、额度与价格以官网为准。

InstaBox Panel 是管理这些机器的私人控制台,部署在 Cloudflare Workers 上,使用 D1 保存账号、配置和操作记录。面板通过 InstaBox 官方 API 查询和控制机器,无需额外购买服务器来运行面板。

主要功能:

  • 多账号统一管理:集中查看机器、筛选状态、暂停、恢复、启动和停止,减少来回切换账号。

  • 自动保活:全天或按每天的时间范围检查,暂停后自动恢复。

  • Telegram 联动:离线通知、查询状态,以及通过按钮恢复或暂停机器。

  • 网页终端:浏览器直接操作机器,支持多个浮动窗口、拖动缩放和最小化。

  • 私人访问与操作记录:管理员账号密码登录,凭据加密保存,记录操作来自 Web、TG 还是保活定时器。

日常怎么用?

首次登录与添加账号

安装完成后,首次打开网站会自动建表,并提示设置管理员账号。创建账号和至少 12 个字符的密码;以后使用这组账号密码登录,没有默认密码。

进入面板后:

  1. 在 InstaBox 官方控制台 的 Profile → API keys 创建 Key,授予 machines:write 权限(已包含读取权限)。
  2. 点击面板的添加账号,填写账号别名和 API Key,保存即可加载机器。
  3. 多个账号重复添加即可。页面每 10 秒刷新状态,机器行右侧提供控制、终端和保活入口。

保活:全天运行,或只在需要的时段恢复

点击机器行右侧的心跳图标,选择模式并保存:

模式 作用
不保活 默认关闭,保留机器原有的自动暂停行为
全天保活 每分钟检查,发现暂停后自动恢复
指定时间范围 仅在每天指定的时间窗口内检查并恢复

时间范围默认使用 Asia/Shanghai 时区,每台最多设置 5 段,支持 22:00–06:00 这样的跨午夜范围。例如只在工作时间使用,就设置 09:00–18:00。窗口结束后不会主动暂停机器,只是停止自动恢复。

保活的原理是 Cloudflare Cron 每分钟触发 Worker → 查询机器状态 → 按规则调用恢复 API。配置保存在 D1,关闭网页或退出登录后仍会执行。当前最多同时为 5 台机器开启保活。

这里的保活是“暂停后自动恢复”,不能保证机器从不暂停、服务零中断。通常在下一次检查时发起恢复,还需要等待机器唤醒;已经停止的机器需要手动启动。

Telegram:离线通知与远程控制

绑定步骤:

  1. 在 Telegram 找到官方 @BotFather,发送 /newbot 创建机器人,取得 Bot Token。
  2. 打开自己的机器人,先发送一次 /start。
  3. 获取自己的 Telegram 数字用户 ID,可通过 @userinfobot 查询。私人聊天 ID 就是这个数字,不能填 @用户名 或群组 ID。
  4. 点击面板右上角 Telegram,填写 Token 和私人聊天 ID。如需提醒,勾选机器离线时通知我,然后点击绑定机器人。
  5. 再向机器人发送 /start 或 /accounts,按消息下方的按钮选择账号 → 机器 → 操作。暂停机器前需要再次确认,无需手动输入长 ID。

面板会自动注册 Telegram Webhook。点击按钮后,Telegram 将请求发给 Worker,Worker 校验回调密钥和绑定用户身份,再调用 InstaBox API。只接受该用户的私人聊天,其他用户和群组无法操作。

保活与通知共用一个每分钟触发器,分别控制开关:

每分钟 Cron
  → 检测机器状态变化,记录离线事件并尝试发送 TG 通知
  → 检查保活规则,对符合条件的暂停机器发起恢复

Telegram 按钮 → Webhook → Worker 校验身份 → 查询或控制机器

开启通知后,首次检查先记录初始状态;之后机器从运行变为暂停、停止或异常时提醒,同一次持续离线不反复通知。API 查询失败不会直接判成机器离线。通知发送失败会保留待发记录并重试,保活仍会继续;补发时若机器已经恢复,消息会注明当前已恢复运行。

例如机器自动暂停后,后台检测到变化,发送 TG 提醒,同时按保活规则恢复机器。收到通知后,可直接点击查看状态确认恢复结果。

两者可以独立使用:不绑定 TG 也能保活;未开启保活的机器也能收到离线通知。关闭通知或解除 TG 绑定不会关闭保活。若希望手动暂停后保持暂停,请先关闭该机器的保活,否则从网页或 TG 暂停后,都可能被下一次检查恢复。

网页终端:在浏览器里操作机器

点击机器行的终端图标即可打开,支持命令输入、复制粘贴、字号调整、拖动、四角缩放和最大化,也可同时保留多个机器的终端。

它提供类似 SSH 的操作体验,实际使用的是 xterm.js + Worker WebSocket 代理 + InstaBox 官方终端,无需自己配置 SSH 私钥。

  • 最小化:收起到右下角,连接和输出继续保留。
  • 点击窗口 ×:收起并开始 60 秒倒计时;期间恢复窗口会取消断开。
  • 点击右下角入口的 ×:立即断开。刷新网页或退出登录也会关闭当前页面的连接。

安装:四步完成

准备好 GitHub 和 Cloudflare 账号即可,整个过程在网页中完成。

第一步:Fork 项目

打开 meicuode/InstaBoxPanel,点击右上角 Fork,复制到自己的 GitHub 账号。

第二步:在 Cloudflare 创建应用

进入 Cloudflare 控制台的 Workers & Pages → Create application / 创建应用,选择从 GitHub 仓库导入,授权后选择自己刚 Fork 的 InstaBoxPanel。

项目名称建议填写 instabox-panel,与仓库配置保持一致;分支选择 main,根目录保持默认。填写:

配置项 内容
构建命令(Build command) npm run build
部署命令(Deploy command) npx wrangler deploy

点击 Deploy / 部署,等待首次部署完成。

第三步:绑定 D1 数据库

进入刚创建的 Worker → Settings / 设置 → Bindings / 绑定 → Add binding / 添加绑定:

  1. 类型选择 D1 database。
  2. 绑定的 Name 必须填写大写 DB。
  3. 在下拉框选择数据库,保存并按提示应用更改。

如果没有数据库,先在 Cloudflare 搜索 D1,进入后创建一个数据库,再回到绑定页面选择它。数据库本身可以任意命名,绑定名必须是 DB。

这里添加的是 D1 资源绑定,不是名为 DB 的文本环境变量。程序会自动建表,无需执行 SQL,也无需额外配置加密密钥。

第四步:重新部署并访问

绑定数据库后,进入 Deployments / 部署,点击最近一次记录的 Build 进入构建详情,手动重新运行一次构建/部署,确保新部署使用刚保存的绑定,等待状态变为 Ready。

接着打开 Domains / 域名,就能看到 Cloudflare 分配的 workers.dev 地址。直接点击访问,或通过 Add Domain 绑定自己的域名。

打开网站,设置管理员、添加 InstaBox 账号,再按需要开启保活和绑定 TG,就完成了。

最后检查:每分钟触发器

保活和离线检测依赖 Cloudflare Cron Trigger。 项目默认会在部署时自动配置一个每分钟执行的触发器,正常情况下无需手动添加。

进入 Worker → Settings → Trigger events → Cron triggers,确认有一条:

* * * * *

页面应显示 Every minute,如下图。已有这条配置就不要重复添加;修改后可能需要几分钟传播生效。

如果发布失败并提示 Cron 数量超限(例如错误 10072),通常是 Cloudflare 免费账号下所有 Worker 的触发器合计已达到 5 条上限。去其他 Worker 删除一条确认不再需要的触发器,再回来重新部署。把执行频率改为每 5 分钟不能解决“条数超限”。额度以 Cloudflare 官方限制为准。

另外记住三点:

  • 保活会增加机器运行时间,仍受 InstaBox 自身的额度和计费规则约束。
  • 部署后及时完成管理员设置,保存好密码、API Key 和 Bot Token;备份 D1,数据库中也保存着后台自动化所需的密钥。
  • TG 绑定需要可访问的 HTTPS 地址。更换域名后重新保存机器人设置;若另加了 Cloudflare Access,需允许 Telegram 访问 /api/telegram/webhook,否则按钮回调无法到达面板。
5 个赞

太强了 :+1:

1 个赞

注册成功的可以试试

感谢分享!这个好

1 个赞

我也跟风注册了一下,但是不知道可以用来干嘛0.0

可以运行一些服务,挂网站也行,定时开启

1 个赞

注册试下还真没用过这种

这个不错,感谢大佬的分享。

1 个赞