我在 10 美元的 OpenStick 上跑些什么

一台 10 美元的 USB LTE 网卡,里面是颗 Pi Zero 2 W,跑着 Debian 和 Podman。九个自托管服务,从 DNS 级广告拦截到 AI agent,每个都标了实际占用的内存。

中文
复制
一根白色的 4G LTE 随身 Wi-Fi 网卡插在黑色 USB 集线器上,旁边横放一支紫色圆珠笔作尺寸参照

前阵子我一时兴起,花 10 美元(还包邮!)买了一个 OpenStick,纯粹是因为这硬件看着太有意思了。

花 10 美元,你得到的东西如下。

  • 512 MB 内存(约 450 MB 可用)
  • 4 个 1 GHz 的 ARM Cortex-A53 CPU 核心
  • 4 GB eMMC 闪存
  • 150 Mbit/s Wi-Fi
  • 4G 调制解调器和 GPS
  • 被动散热,所以 100% 静音!
  • 1 个可编程 LED :)

一根白色的 4G LTE Wi-Fi 调制解调器棒,带 USB-A 插头,旁边是一个黑色 USB 集线器和一支笔作为参照

看到这配置,你可能会想“我的手表都比它强”,这话未必不对,但这么小的设备照样能玩出很多花样,而且它是入门自托管的绝佳小玩意儿。

安装过程有点繁琐,不过一旦跑起来,它运行的是 Debian,systemd(为 Linux 提供调度、服务监控等功能)和 Podman(轻量级容器化)这些经典好东西一应俱全。花 10 美元,你基本上就得到了一台功耗极低、零噪音的家庭服务器!

其实有不少实用软件在这东西上跑得很好。下面这几个是我最喜欢的。

CastSponsorSkip(5-10 MB)

这是一个小服务,连接任意正在运行的 Google Cast 设备,跳过赞助片段(有时也跳过广告)。它几乎不占什么资源,用一阵子你就忘了它的存在,但它确实让整个 YouTube 体验舒服了不少!

CastSponsorSkip

AdGuard Home(我自己的分支,40 MB)

AdGuard Home 在 DNS 层面拦掉恶意域名,间谍软件、恶意软件都算在内。如今的设备总爱监视你。智能电视一直在做内容识别,洗衣机扫描你的网络,你的咖啡机说不定也在监视你。

DNS 拦截器没法拦下所有恶意请求(那得靠正经的防火墙),但它确实能拦下相当多。加了几份拦截列表之后,我的查询有 60% 被拦掉了。大部分看起来无害,但我很确定有些不是。

我自己维护了一个 fork,能高效处理大型拦截列表。不过你大概不该运行陌生人提供的二进制文件,所以下面也附上了官方版本的链接(只要你只用较小的拦截列表,官方版完全没问题)。

AdGuard Home Next-Gen - 40 MB(与黑名单大小无关)

AdGuard Home - 40 MB(配一份 200k 的小拦截列表)

AdGuard Home 仪表盘,显示 12,536 次 DNS 查询、8,091 条已拦截广告以及客户端排行

Zeroclaw(64 MB)

Zeroclaw 是一个 AI agent 的运行框架。它支持 30 种渠道(Telegram、邮件、WhatsApp 等),安全默认值合理,有一个好用的 Web UI,并且集成了各大 LLM 提供商。

我在自己的 Kubernetes 集群上跑过一阵子 OpenClaw,结果大多是自找烦恼。它能用,但占用 1 GB 以上内存,每次更新都会出问题,而且他们老是改动功能,把我现有的工作流弄坏。Zeroclaw 让人耳目一新。空闲时 RSS 约 3 MB,覆盖了我需要的全部功能,安全默认值合理,关掉也不难。下一个版本(但愿如此!)会支持 Telegram 的富消息,由本人实现。PR 可以在这里跟进!

我给了 Zeroclaw 访问 OpenStick 的权限(仅此而已)。实际上这就是一个 root shell,但考虑到影响范围有限,我觉得可以接受。我主要用它来监控 OpenStick,问些“日志里有什么需要我注意的吗?”或者“磁盘空间怎么样?”之类的问题。最大的好处是它通过 Telegram 通信,所以当我在山里信号不好的时候,依然能问问我的小服务器过得怎么样 :)

我看过 Picoclaw 和 Nullclaw 之类的替代品,它们无疑也很好。不过 Zeroclaw 的文档似乎最完善,社区也最活跃,所以就选了它 :)

GitHub Zeroclaw

文档

Zeroclaw 仪表盘,显示运行时间、内存占用、费用概览和当前活跃的 Telegram 频道

Cloudflare Tunnel(约 8-20 MB)

Cloudflared 能把这些服务安全地暴露到险恶的互联网上,免费,而且无需开放任何端口。代价可能是 NSA 能读到你做的一切,但但对家用服务器来说,我认为这个取舍可以接受。

Cloudflare Tunnel

Beszel(20 MB)

Beszel 用漂亮的图表展示内存、CPU 占用等指标,发现异常会告警,而内存占用极低。

我曾在 Kubernetes 集群上跑过整套 Grafana 栈,功能确实强大,但对用户不算友好,感觉有点杀鸡用牛刀。

Beszel 是个相当出色的方案。界面好看,只需约 20 MB 内存,其中 agent 10 MB、server 10 MB。它内置了对一大批协议的告警支持,我让它在我需要关注时往 Telegram 发消息。

GitHub Beszel

Beszel 中 OpenStick 的系统页面,显示 24 小时内的 CPU、Podman CPU、内存和 Podman 内存占用

Dozzle

Dozzle 是一个管理 Podman 容器的漂亮界面。它和 Beszel 功能重叠不少,所以哪天我需要省下 10 或 20 MB,就会砍掉其中一个。查看 Podman 日志,Dozzle 的界面要好得多,但统计信息不如 Beszel 全面。

GitHub Dozzle

Dozzle 容器列表,显示 openstick-debian 上运行的八个容器及各自的 CPU 和内存占用

Gatus(10 MB)

Beszel 监控你的服务器,Gatus 监控你的服务。换句话说,想在 Web 服务器或数据库崩溃时收到通知,你需要的就是 Gatus。它还会生成一个非常漂亮的 Web 界面!

GitHub Gatus - 10 MB

Gatus 状态页,按端点显示 AdGuard Home、Beszel、Dozzle、Cloudflare tunnel 等的运行时间条

Fusion RSS(22 MB)

Google Reader 已经没了。我试过一阵子 Feedly,但 Pro 版要 7 美元,比我心里舒服的价位高了一点。再说,自己搭一个替代品能玩上好几个小时,何必花钱?

我试了一大堆 RSS 阅读器,最后选了 Fusion。我需要的东西它都有,界面好看,响应也跟手,内存只占 22 MB。

GitHub Fusion - 22 MB

Fusion 的三栏阅读器,全部文章列表中显示 63 篇未读

Shiori(约 10-20 MB)

浏览器书签挺好用,但我不少旧书签已经打不开了,网站没了、URL 变了,或者别的一堆原因。Shiori 解决的正是这件事。它是个不错的书签管理器,还会自动把网页存档。占用约 10 MB。存档时内存会有些尖峰,但这点负载 OpenStick 完全扛得住。

Shiori - 10 MB

Diun(9 MB)

一个小服务,只要有容器有可用更新,就往我的 Telegram 发条消息。

Diun - 9 MB

来源: bosscher.ch← 返回首页