从安卓手机上部署、回滚并监控 13 家托管、BaaS 与可观测性服务商。Pocket Code 的后端管理器让这一切都在 IDE 里搞定。
生产环境挂了,而你正在公交车上。一次部署需要回滚,某个环境变量配错了,可你口袋里唯一能用的只有一部手机——不是那台同时开着 Vercel 控制台、Cloudflare 控制台和 Sentry 标签页的笔记本。通常的答案是「等你回家再说」。Pocket Code 的后端管理器消除了这段等待:它是一块统一的面板,让你从手机上管理后端,直接对接各家服务商真实的 API,就住在 IDE 里、紧挨着你的编辑器和终端。
它不是一堆指向网页控制台的链接。它直接与服务商对话,把你的令牌保存在设备的加密存储中,并根据每家服务商 API 实际支持的能力来调整界面。
后端管理器把所有围绕项目运转、却又活在代码之外的东西拆分成三个独立的中心。你从欢迎页选一个,直接落进它的服务商网格。
| 中心 | 服务商 | 它回答的问题 |
|---|---|---|
| 部署(Deploy) | Vercel、Render、Netlify、Railway、Fly.io、Cloudflare、DigitalOcean | 「我的应用跑在哪里?」 |
| BaaS | Firebase、Appwrite、Convex、Supabase | 「我的数据在哪里,用户又在哪里?」 |
| 可观测性(Observability) | Sentry、PostHog | 「它在生产环境里正常吗?」 |
导航基于手势——顶部没有可见的标签页,也没有返回按钮。返回手势会带你上退一级,再退回欢迎页,最后关闭面板。想进一步了解在手机上如何部署你的后端,可以从这三个中心入手。
每家托管服务商暴露出来的 API 面都不一样,后端管理器也不装作它们都一样。它不会显示一堆灰掉的按钮,而是直接隐藏某家服务商做不到的操作——所以你永远不会点到一个返回「不支持」的按钮。下面是已上线的能力矩阵,都对照真实的分发代码逐一核实过:
| 能力 | Vercel | Render | Netlify | Railway | Fly.io | Cloudflare | DigitalOcean |
|---|---|---|---|---|---|---|---|
| 列出项目 / 服务 | 支持 | 支持 | 支持 | 支持 | 支持 | Pages | Apps |
| 触发部署 | — | 支持 | 支持 | — | — | — | 支持 |
| 回滚 | 支持 | 支持 | 支持 | 支持 | — | 支持 | 支持 |
| 环境变量(读 + 写/删) | 支持 | 支持 | 支持 | 支持 | — | — | — |
| 自定义域名 | 支持 | — | — | — | — | Zones | — |
| 写入构建配置 | 支持 | 支持 | — | — | — | — | — |
| 取消部署 | 支持 | — | — | — | — | — | — |
| 挂起 / 恢复 | — | 支持 | — | — | — | — | — |
| 服务器 / 虚拟机 | — | — | — | — | Apps | — | Droplets |
所以你可以在安卓上部署后端:在 Render、Netlify 或 DigitalOcean 上触发一次构建;在 Vercel、Render、Netlify、Railway、Cloudflare 或 DigitalOcean 上晋级或回滚;在 Vercel、Render、Netlify 或 Railway 上编辑和删除环境变量;以及挂起或恢复一个 Render 服务——全都在手机上完成。
两个如实的注意事项。通过一键部署向导启动一个全新项目,目前只对 Vercel 生效——其他服务商虽然出现在向导里,但还没接到真实的接口。此外预览部署和分支/Git 部署的界面已经做好,但暂时还不能触发;这部分接线属于后续工作,所以管理器现在先把这些操作藏起来,不碍事。
底层这些走的都是服务商自家的 REST 与 GraphQL 接口。举例来说,Render 上的一次回滚会打到 POST /v1/services/{id}/rollback;一次 Vercel 晋级会走 POST /v10/projects/{id}/promote/{deploymentId};Railway 上的环境变量写入会跑一个 GraphQL 的 variableUpsert。删除环境变量始终会先请你确认。想了解更多流程细节,可以查阅部署文档。
有三家服务商的功能面远比一个基础部署流程要大,后端管理器通过能力子中心把它们呈现出来——这些子中心按需惰性加载,并按会话缓存。
POST /zones/{id}/purge_cache)。账户 ID 会被自动解析并在本次会话内缓存。所有这些都跑在同一块可复用的列表界面之下,这也是为什么该模块能提供 21 种不同的能力视图,而无需为每一种单独定制 UI。
BaaS 中心是你盯着自己后端即服务技术栈的地方。
GET /v1/users,用 X-Appwrite-Key 鉴权)。tables 查询加载它的表。你还可以对线上部署运行任意 Convex 查询,并把结果汇总反馈给你。anon 密钥,打到 PostgREST 的 schema 接口,再从 OpenAPI 定义中解析出 public schema 下的表名。那个 anon 密钥从不落盘——它只在这次调用期间存在于内存里。一个如实的说明:Firebase 目前是只读占位。列出 Firebase 项目需要一个该模块尚未接入的 OAuth 权限范围,所以选中它时会显示一条信息提示,指引你去 Firebase Console,而不是假装能列出项目。
部署中心还附带一个本地的 Kubernetes YAML 生成器。你填入应用名、镜像、副本数、端口、命名空间以及 CPU/内存的 requests 和 limits,它就会生成一份包含一个 Deployment 和一个配套 Service 的 YAML 文档,可以直接粘到 kubectl apply -f -。它纯粹是个生成器——不连接集群、不实际应用任何东西,也不会对着线上 API 校验。它只是帮你省掉在触屏上手写样板代码的麻烦。
每一个服务商令牌都用 SecureTokenStorage 存储——即由 Android Keystore 支撑的 EncryptedSharedPreferences,密钥用 AES256-GCM、值用 AES256-SIV。什么都不会发到我们的服务器。
在任何一次服务商调用之前,后端管理器都会先检查令牌是否存在。如果不存在,它会发起零次 API 调用,转而显示一个「连接 某服务商」的空状态,带一个打开集成设置的按钮。那个深链受生物识别或设备锁验证保护,所以拿着你解锁手机的人,无法在不先通过验证的情况下从后端管理器跳进你保存的 API 密钥里。
读懂并理解你基础设施所需的一切都是免费的:列出项目、读取环境变量、浏览 Cloudflare 和 DigitalOcean 子中心、生成 Kubernetes YAML,以及查看 Sentry issues 和 PostHog insights。
有三样东西需要 Pro 套餐:自定义域名、回滚一次部署,以及 PostHog 的功能开关(feature flags)。免费套餐还被限制为同时只能有一个进行中的部署——在第一个还在构建或部署时触发第二个,系统就会请你升级。想看完整对比可以参考套餐与定价页。
因为后端管理器就住在 Pocket Code 里,AI 助手可以通过应用的事件总线与它对话。你问它一次部署的情况,它就能触发一次部署、报告部署状态、把最近的部署汇总成日志行,或者跨部署与可观测性两个中心列出你的项目——全都扎根于你当下正看着的状态。
管理后端过去意味着一张桌子、一台笔记本,外加一大把浏览器标签页。如今不再如此。Pocket Code 把托管、BaaS 和可观测性——十三家服务商、真实的 API 调用、加密的令牌——放进了你写代码、发代码的同一个应用里。
Pocket Code 即将登陆 Google Play。加入预注册,成为最早用手机跑自己后端的人之一。