前几天在 HN 上刷到一个项目,看了十分钟 README 之后我把它加进了周末折腾清单:Cloud in a Bottle,AI 公司 Imbue 开源的一套”个人云操作系统”。一句话概括它干的事:把你手上随便一台 Ubuntu 机器——旧笔记本、吃灰的迷你主机、一台 VPS——变成一台”云上手机”,装应用像手机装 App 一样点一下,每个应用有自己的子域名,数据全程在你自己手里。

项目 9 月 5 日发的 v0.2.0,第二天上 HN 首页,四天破千星。目前 GitHub 上 1100+ star,AGPL-3.0 协议。热度是一方面,更让我在意的是它想解决的问题确实戳中了我。
它想解决什么
用 AI 写点小工具的人现在都有个尴尬:应用五分钟就生成了,但它住哪?扔到大厂 SaaS 上,数据跟着走;自己在服务器上跑,就得 ssh、敲 docker compose、配反代、搞证书。自托管软件一直有,卡住大家的是”装好之后的日子”——升级、备份、权限,全是没完没了的运维活。
Cloud in a Bottle 的思路是把这些全压进一个平台层:一条安装脚本跑完,你得到一个带仪表盘的实例,里面有应用商店(Catalog)、统一登录、备份应用。装 Jellyfin、Vaultwarden、Pi-hole、Nextcloud 这类常见自托管软件都是目录里点一下,官方适配过的应用有 12 个以上,都是标准容器封装,不改原软件一行代码。

它和 Coolify 这类自托管面板的区别在于产品定位。Coolify 本质是给开发者的容器编排平台,默认叙事是多实例、负载均衡;Cloud in a Bottle 把这套复杂度整个砍掉,官方原话叫”一套小架构,全部可读”——就是一台机器加一个 Python 路由服务,为的是普通人能理解:这是我的设备,装 App 用。老玩家可能会想到 2014 年的 Sandstorm,愿景几乎一样但最后死了。这个项目从 Sandstorm 学到的最关键一课是不发明新的应用格式,直接接 Dockerfile 生态——任何有 Dockerfile 的开源软件,加一个 toml 清单文件就能上架。
部署是什么体验
官方给三条路:自家硬件、自己的 VPS、或者花 5 美元/月用 Imbue 托管。前两条软件完全一样,我自己看下来,VPS 路径的文档最顺:
- 把域名的 NS 记录委托给这台机器(它自己跑权威 DNS,给每个应用发通配符子域名,顺便用 DNS-01 签通配符证书);
- 跑一条
provision.sh安装脚本,装 rootless Podman、注册 Let’s Encrypt、起 systemd 服务; - 安装结束时输出一个带 token 的 claim URL,打开注册成 owner,完事。
家用机器没公网 IP 也有对应路径:先用 lvh.me 加 SSH 隧道在本地把实例跑起来,对外暴露推荐走隧道服务(文档里给的是免费隧道方案的配置教程),代价是只支持 HTTP 流量,声明了非标准端口的应用跑不了。
自己写应用部署也简单,官方口号是”任何仓库 + 这个文件 = 一个应用”。cloudinabottle.toml 的必填项就四个:应用名、版本、Dockerfile 位置、端口号。声明 sqlite = ["main"] 会在部署时自动建库,连接串通过环境变量注入。存储分三层:永久数据(默认开启,参与备份)、临时数据、可接 S3 的归档层,边界都写在清单里。
最值得说的设计:默认不信任
装过多少个来路不明的开源工具,就有多少次”它到底在读我什么”的心虚。这个平台的权限模型直接回应了这点:应用装完默认只有你能访问,路由层先鉴权再转发,请求根本到不了应用;想公开某个路由,得在清单里显式声明 public_paths。应用要额外 Linux capabilities、要读别的应用的数据、要 host 网络,都得在清单里逐项声明,更新时改了权限还要你重新批准。官方的卖点是:你可以放心跑那些 AI 随手生成的第三方应用,因为它拿不到多余权限。
坑和顾虑
- 53 端口必须对外开放。它自己跑权威 DNS,很多 VPS 的安全组默认不放行 53/tcp+udp,装之前先检查,不然证书签发那步就会卡住。
- 应用不会自动更新。要去应用详情页手动点拉取更新,对装了一堆东西的人是个心智负担。
- 没有”给别人开账号”的功能。public_paths 是全有或全无——一个路径公开就是对全网公开。想给家人朋友各自开个登录,现在做不到,官方说在路线图上。
- 这不是社区项目。有效贡献者就四个人,全是 Imbue 的员工,项目存续和这家还在烧钱期的 AI 创业公司绑定。协议目前是 AGPL-3.0,但 README 明说未来可能换成 fair source 类协议——个人使用承诺不受限,商用可能被限定。
- 版本还在 0.x。公开才五个月,单机设计没有高可用叙事。跑 Jellyfin、Vaultwarden 这种成熟软件问题不大,但把全家数字生活押上去还不到时候。
值不值得折腾
手上有闲置机器、早就想自托管又懒得碰命令行的,值得花一个晚上试试,装完不满意格式化重来就是。它真正有意思的地方是和 AI 编程时代的咬合:让 Claude 五分钟写个追踪咖啡摄入量的小工具,它总得有个地方住——这个平台就是给这类应用准备的房子,而且房子是你的。个人云这条赛道,Sandstorm 证明了愿景正确、模式错误会死,这次代码可读、数据随时可导出,至少退路是想好了的。
仓库地址:github.com/cloud-in-a-bottle/cloud-in-a-bottle,文档在 cloudinabottle.org/docs。