如果你和我一样,把网站、博客或者一些小项目放在 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
