跳转到内容
返回首页
返回博客
Feature

用你的安卓手机管理后端

从安卓手机上部署、回滚并监控 12 家托管、BaaS 与可观测性服务商。PocketCode 的后端管理器让这一切都在 IDE 里搞定。

3 min
作者 Pelayo Naredo
用你的安卓手机管理后端

生产环境挂了,而你正在公交车上。一次部署需要回滚,某个环境变量配错了,可你口袋里唯一能用的只有一部手机——不是那台同时开着 Vercel 控制台、Cloudflare 控制台和 Sentry 标签页的笔记本。通常的答案是「等你回家再说」。PocketCode 的后端管理器消除了这段等待:它是一块统一的面板,让你从手机上管理后端,直接对接各家服务商真实的 API,就住在 IDE 里、紧挨着你的编辑器和终端。

它不是一堆指向网页控制台的链接。它直接与服务商对话,把你的令牌保存在设备的加密存储中,并根据每家服务商 API 实际支持的能力来调整界面。

三大中心,十三家服务商

后端管理器把所有围绕项目运转、却又活在代码之外的东西拆分成三个独立的中心。你从欢迎页选一个,直接落进它的服务商网格。

中心服务商它回答的问题
部署(Deploy)Vercel、Render、Netlify、Railway、Fly.io、Cloudflare、DigitalOcean「我的应用跑在哪里?」
BaaSFirebase、Appwrite、Convex、Supabase「我的数据在哪里,用户又在哪里?」
可观测性(Observability)Sentry、PostHog「它在生产环境里正常吗?」

导航基于手势——顶部没有可见的标签页,也没有返回按钮。返回手势会带你上退一级,再退回欢迎页,最后关闭面板。想进一步了解在手机上如何部署你的后端,可以从这三个中心入手。

部署:如实呈现每家服务商的能力

每家托管服务商暴露出来的 API 面都不一样,后端管理器也不装作它们都一样。它不会显示一堆灰掉的按钮,而是直接隐藏某家服务商做不到的操作——所以你永远不会点到一个返回「不支持」的按钮。下面是已上线的能力矩阵,都对照真实的分发代码逐一核实过:

能力VercelRenderNetlifyRailwayFly.ioCloudflareDigitalOcean
列出项目 / 服务支持支持支持支持支持PagesApps
触发部署支持支持支持
回滚支持支持支持支持支持支持
环境变量(读 + 写/删)支持支持支持支持
自定义域名支持Zones
写入构建配置支持支持
取消部署支持
挂起 / 恢复支持
服务器 / 虚拟机AppsDroplets

所以你可以在安卓上部署后端:在 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。删除环境变量始终会先请你确认。想了解更多流程细节,可以查阅部署文档

更进一步:服务商能力子中心

有三家服务商的功能面远比一个基础部署流程要大,后端管理器通过能力子中心把它们呈现出来——这些子中心按需惰性加载,并按会话缓存。

  • Cloudflare —— 浏览 Workers 脚本、KV 命名空间、D1 数据库、R2 存储桶和 Zones。在 Zones 列表上有一个内联的清除缓存操作(POST /zones/{id}/purge_cache)。账户 ID 会被自动解析并在本次会话内缓存。
  • DigitalOcean —— 列出 Kubernetes 集群、托管数据库卷(volumes)防火墙,droplets 可通过「服务器」路由访问。
  • Railway —— 查看某个项目的环境(environments)(按项目作用域,所以切换项目时状态会重置)。

所有这些都跑在同一块可复用的列表界面之下,这也是为什么该模块能提供 21 种不同的能力视图,而无需为每一种单独定制 UI。

后端即服务:数据与用户

BaaS 中心是你盯着自己后端即服务技术栈的地方。

  • Appwrite —— 列出你的项目,然后下钻到某个项目的用户(GET /v1/users,用 X-Appwrite-Key 鉴权)。
  • Convex —— 列出你的团队,输入一个部署 URL,通过系统的 tables 查询加载它的表。你还可以对线上部署运行任意 Convex 查询,并把结果汇总反馈给你。
  • Supabase —— 列出项目,然后下钻到某个项目的表。后端管理器会按需获取该项目的 anon 密钥,打到 PostgREST 的 schema 接口,再从 OpenAPI 定义中解析出 public schema 下的表名。那个 anon 密钥从不落盘——它只在这次调用期间存在于内存里。

一个如实的说明:Firebase 目前是只读占位。列出 Firebase 项目需要一个该模块尚未接入的 OAuth 权限范围,所以选中它时会显示一条信息提示,指引你去 Firebase Console,而不是假装能列出项目。

可观测性:它到底跑起来了没有?

  • Sentry —— 列出你的令牌能触及的每一个项目,然后打开它未解决的 issues,按级别(fatal、error、warning、info、debug)用颜色区分。从那里你可以惰性加载 releases告警规则replays用户反馈
  • PostHog —— 列出项目及其 insights,然后下钻到 eventscohortsexperiments会话录制仪表盘注解。PostHog 的主机地址可配置,所以同一个客户端既能连 PostHog Cloud,也能连自托管实例——如果你在移动端自托管并把管理器指向你自己的部署,这一点很有用。

口袋里的 Kubernetes 清单生成器

部署中心还附带一个本地的 Kubernetes YAML 生成器。你填入应用名、镜像、副本数、端口、命名空间以及 CPU/内存的 requests 和 limits,它就会生成一份包含一个 Deployment 和一个配套 Service 的 YAML 文档,可以直接粘到 kubectl apply -f -。它纯粹是个生成器——不连接集群、不实际应用任何东西,也不会对着线上 API 校验。它只是帮你省掉在触屏上手写样板代码的麻烦。

你的令牌牢牢锁在设备上

每一个服务商令牌都用 SecureTokenStorage 存储——即由 Android Keystore 支撑的 EncryptedShared­Preferences,密钥用 AES256-GCM、值用 AES256-SIV。什么都不会发到我们的服务器。

在任何一次服务商调用之前,后端管理器都会先检查令牌是否存在。如果不存在,它会发起零次 API 调用,转而显示一个「连接 某服务商」的空状态,带一个打开集成设置的按钮。那个深链受生物识别或设备锁验证保护,所以拿着你解锁手机的人,无法在不先通过验证的情况下从后端管理器跳进你保存的 API 密钥里。

什么免费,什么属于 Pro

读懂并理解你基础设施所需的一切都是免费的:列出项目、读取环境变量、浏览 Cloudflare 和 DigitalOcean 子中心、生成 Kubernetes YAML,以及查看 Sentry issues 和 PostHog insights。

有三样东西需要 Pro 套餐:自定义域名、回滚一次部署,以及 PostHog 的功能开关(feature flags)。免费套餐还被限制为同时只能有一个进行中的部署——在第一个还在构建或部署时触发第二个,系统就会请你升级。想看完整对比可以参考套餐与定价页

内建于 IDE,而非外挂拼接

因为后端管理器就住在 PocketCode 里,AI 助手可以通过应用的事件总线与它对话。你问它一次部署的情况,它就能触发一次部署、报告部署状态、把最近的部署汇总成日志行,或者跨部署与可观测性两个中心列出你的项目——全都扎根于你当下正看着的状态。


管理后端过去意味着一张桌子、一台笔记本,外加一大把浏览器标签页。如今不再如此。PocketCode 把托管、BaaS 和可观测性——十三家服务商、真实的 API 调用、加密的令牌——放进了你写代码、发代码的同一个应用里。

PocketCode 即将登陆 Google Play。加入预注册,成为最早用手机跑自己后端的人之一。

本文背后的工具

后端管理器

准备好试用 PocketCode 了吗?

下载应用,开始用手机编程。