利益相关声明:作者与文中产品有直接的利益相关(开发者、自家产品等)

如果你和我一样,把网站、博客或者一些小项目放在 Cloudflare 上,大概都有过这样的时刻。

朋友发来消息:

「你的网站打不开了。」

打开手机,切到 Cloudflare Dashboard。

找到域名。

找到 DNS。

确认解析没问题。

再看看是不是 WAF 规则误杀了。

或者打开 Workers,看看刚部署的代码是不是出了问题。

如果只是临时改一条 DNS 记录,或者确认一下服务状态,这套流程多少有点「重」。

Cloudflare 的 Web Dashboard 功能非常丰富,但它毕竟是为桌面浏览器设计的。对于很多日常操作,我其实只想掏出手机看一眼。

于是,我给自己做了一个小工具。

一开始,只是想改 DNS

最早的需求很简单。

出门在外,偶尔需要:

临时修改一条 DNS;

打开或者关闭橙云代理;

看看流量有没有异常;

确认某个域名是不是配置错了。

这些事情并不复杂,但每次都要打开网页,操作成本并不低。

既然 Cloudflare 提供了完整的 API,那为什么不能有一个更适合手机使用的客户端?

于是开始研究 Cloudflare 的开放接口。

比功能更重要的是安全

做这个项目的时候,我最在意的一件事情不是功能,而是认证。

很多第三方工具都会要求用户创建一个 API Token,然后复制粘贴进去。

对于开发者来说,这当然不难。

但总觉得有点别扭。

如果只是临时查看 DNS,为什么要创建一个长期有效的 Token?

后来发现,Cloudflare 官方提供了 OAuth。

于是整个项目都围绕官方 OAuth 流程设计:

使用 OAuth 2.0 + PKCE;

登录时自行选择授权范围;

可以随时在 Cloudflare 后台撤销授权;

凭证保存在 iOS 钥匙串;

请求直接从设备发送到 Cloudflare;

不需要把 Token 交给第三方服务器。

至少对我自己来说,这样用起来会安心很多。

后来越做越多

有了 DNS,自然会想到:

既然都登录了,为什么不看看流量?

于是加了 Analytics。

后来发现,Workers 的实时日志如果能在手机上看,好像也不错。

于是支持了 tail。

再后来,又陆续加入了:

R2 对象存储;

D1 SQL 控制台;

KV 键值管理;

WAF 规则;

Cloudflare Tunnel;

多账号切换;

主屏小组件;

Siri 捷径;

Spotlight 搜索;

iPad 双栏布局。

很多功能其实都不是提前规划好的。

而是在自己使用过程中,觉得:

「如果这里也能顺手操作一下就好了。」

然后一点一点加进去。

手机上的运维,不一定是应急

很多人会觉得,手机管理服务器或者网络配置,只是应急方案。

但实际用下来,我发现更多场景是:

午休的时候看看流量。

收到报警,确认一下 Workers 日志。

朋友说网站打不开,检查 Tunnel 是否在线。

临时给一个域名加一条解析。

这些事情并不需要打开电脑。

掏出手机,几十秒解决,体验其实还不错。

当然,我并不认为手机可以替代桌面端。

Cloudflare 的 Web Dashboard 依然是最完整的管理工具。

而这个项目更像是一个随身携带的小助手。

开源,也是为了让自己放心

整个项目已经开源。

原因很简单。

既然这是一个会接触账户权限的工具,那么代码公开,大家可以看到它到底做了什么,也更容易获得信任。

如果有人觉得哪里设计得不好,或者有更好的想法,也欢迎一起改进。

目前它仍然在持续开发中。

偶尔会有 Bug,也还有不少想做的功能。

不过,对我来说,它已经完成了最初的目标:

把那些日常、高频的小操作,从浏览器搬到了手机上。

如果你也是 Cloudflare 用户,希望它也能给你带来一点方便。

项目地址:
https://github.com/chen2he/orange-cloud

官网:
https://orange-cloud.chatiro.app

TestFlight:
https://testflight.apple.com/join/ZGhbsphj

0
0