Hacker News 中文摘要

RSS订阅

Cloud in a Bottle:让自托管人人可用 -- Cloud in a Bottle: making self-hosting accessible to everyone

我对数字世界现状沮丧:软件充满广告、追踪和售卖数据,有意使人上瘾。软件开发从未如此容易,为何却这样?我想一大原因是软件上云。云软件免安装、跨设备、易协作,体验很好,但托管要花钱;开源作者不愿贴钱托管免费软件,于是云服务几乎都落到公司手里,而公司利益与用户相悖。云时代之前,开源作者分发程序,大家在自己电脑上运行。

正文

我对如今的数字世界感到沮丧。我们使用的软件,其目标与用户利益严重不符,它们刻意让人上瘾、塞满广告、追踪用户并贩卖数据,整体体验不断劣化。软件开发明明比过去容易得多,怎么会走到这一步?我认为一个很重要的原因是软件全面转向了云端。云端软件(比如 Google Docs 对比微软 Word)体验确实出色:无需安装、多设备同步、即时分享协作。但要把服务放在云端就需要成本,于是现代网络上的几乎所有服务背后都有公司在运营,开源作者自然不愿自掏腰包,免费为世界提供云端服务。而那些公司的经济利益,从根本上讲,和用户的利益是不一致的。

在云端时代之前,开源模式是可行的:作者发布软件,每个人在自己的电脑上运行它,相当于自己“托管”。如今,云端软件是集中式的,同一个实例服务全球用户,成本由创造者承担。这是因为个人缺乏一种简单的方式来为自己把软件部署到云端。

自托管方案其实已经存在,但一直属于小众,门槛很高。我看过现有的选项,没有一个让人满意: - sandstorm.io:理念非常接近(他们 2014 年的一篇文章,论点和我这里讲的基本一样),但可惜早已停止维护,而且需要大幅修改现有软件才能在上面运行。 - Nextcloud:速度慢、不稳定,现在更偏向企业用户。 - YunoHost:应用直接跑在宿主机上,没有沙箱隔离,只要一个应用不安全,整台服务器都会沦陷。 - Coolify:可以托管容器化应用,但每个应用都是孤岛,各自有独立的登录系统,和宿主及其他应用几乎没什么集成。

我们创建了 Cloud in a Bottle,就是想在这个方向上再试一次。它的核心其实很简单:一台跑 Ubuntu 的机器,上面有一个 Web 服务器,负责展示仪表盘,并把 HTTP(s) 请求转发给容器化的应用。应用以(无根、加固过的)容器方式运行,所以只需很少的改动就能跑现有的软件,而且处在相对安全的沙箱里。但和单纯托管容器(比如 Coolify)不同,我们还提供了一系列可选的平台功能,应用可以借助这些功能提升体验。我希望它用起来像你的“云端手机”——你完全拥有它,发现并安装好应用很简单,整体体验不输给我们要替代的那些闭源产品。举个基础例子:只要你登录了自己的实例,就自动登录了所有应用,不用在每个应用里单独注册账号。我们还提供了接口,让同一个实例里的不同应用可以按权限互相访问数据和能力。更广义地说,就像 Android 或 iOS 提供各种 API,让应用能实现出色、集成的体验(比如传感器访问、通知、健康数据共享等),我们也花了很多心思,为个人云端环境设计类似的 API。

它是开源的,可以自己托管,零遥测数据,目标是尽可能简单,不玩“魔法”。我们(我所在的公司 Imbue)也提供托管版本,我认为这对降低使用门槛很重要,同时也给了我们一个清晰的商业模式来支撑项目。但开源和自托管路径跑的是完全相同的代码,并且永远是首要支持的。

在私下构建和测试了六个多月之后,我们现在正式发布,核心平台已经基本完成且稳定。我一直在慢慢把我的数字生活迁移到自己的 Bottle 实例里,感觉非常好。不过,这里存在一个鸡生蛋、蛋生鸡的问题——如果没有一种人人都能轻松自托管开源 Web 软件的方式,这类软件的受众就很小,可用的软件自然也有限。我们的一个重要目标,就是推动更多优秀开源 Web 软件的出现,让我们可以推荐给朋友和父母,而不只是给软件极客用。我们的精选应用目录是朝这个方向迈出的一步——我们坚持高门槛,只收录真正提供出色体验的应用,所以目前目录还比较小。但我们每周都在新增应用,也希望借助社区的力量让它更快成长。现阶段,早期用户可能还是需要一点技术基础(或者借助编程助手)来寻找、创建或适配你想在实例上运行的东西,其实操作并不难。随着应用目录越来越丰富,我们的体验打磨得越来越好,希望它能变得越来越让所有人都能轻松上手。

如果你想试试: - 免费试用托管实例(赠送 10 美元额度) - 在云 VPS 上自托管 - 在自己的硬件上安装(虚拟机或裸机均可) - 在 GitHub 查看代码 - 在 Matrix 上和我们交流

评论

这场讨论总体气氛是「认可方向、质疑落地」:多数人看好个人云/自托管「开箱即用」的趋势,也有人担心它只是把 Docker 包装了一层,并对托管服务的定价、备份、高可用等细节提出尖锐问题。分歧主轴在于「这类项目能否真正跨越小白门槛、形成可持续生态」,以及「作者团队一边倡导社区一边悄悄在各仓库刷推广是否妥当」。

认为个人云的时代终于来了

  • 不少评论者认同「受够了订阅制和把个人数据交给广告/AI 公司」的情绪,认为这类打包方案的市场窗口已经打开(较多人)
  • 目前自托管大多停留在 docker compose 层面,对非技术用户极不友好,因此希望有项目能真正降低门槛: > 不管是不是这个项目,希望有足够多人参与的东西能真正打破准入门槛(@drunner)

本质只是一个带面板的 Docker 主机,不解决可靠性问题

  • 有人直接点出核心设计:一台 Ubuntu 机器加 Web 面板和反向代理,本质上等于预装了软件栈的 VPS(高赞)
  • 单机架构没有故障转移和冗余,一旦硬件损坏服务就全挂,而这恰恰是云应用最重要的特性之一: > 至少应该两台机器,让其中一台可以坏掉(@Winfred-zz)
  • 另有评论者调侃「systemd 就够了」,暗示这类项目在技术上有重复造轮子之嫌(少数人)

「人人可用」的承诺值得怀疑

  • 有人翻出官方 setup 文档,认为其步骤远谈不上小白友好,拿「4 岁小孩也能装」来反讽(较多人)
  • 批评者认为没有理由做不到双击一个 .exe 就完成安装: > 我不觉得这对所有人都是可及的,这个安装说明你能面不改色地说 4 岁小孩也能搞定吗(@charcircuit)

托管服务缺了关键细节:备份、容量和价格

  • 对官方托管页面的质疑集中在没有明确备份方案、看不到磁盘限额、无法判断能不能托管 Immich 或 Jellyfin 这类大容量应用(高赞)
  • 坏掉之后发现没有备份,才是用户彻底放弃自托管的时刻: > 配置难是前面的事,更新难是长期的事,但真正让我放弃的是数据全丢、而我根本没有备份(@jerf)

历史不断重演:这类项目早已存在,问题也早已存在

  • 有老用户回忆 Netgear ReadyNAS 插件生态、FreeNAS、Fantastico/Softaculous 等先驱,认为这类「一键装应用」的形态并不新鲜(较多人)
  • 核心困境是:懂 Docker 的人没有动力参与贡献,需要手把手指导的人又恰好是最不会贡献的人,于是生态容易变成一小群人单向输出(少数人)
  • 如果托管服务真能赚钱,云巨头一定会用成本价卖同款实例把你挤死,就像对 Redis、Elasticsearch 做过的那样: > 商业化带来的利润会吸引云厂商用你的成本价提供同样的东西,最后你连成本都收不回来(@jasongi)

质疑用 AI 写代码却推广自托管

  • 有人觉得「用 Claude 写一切」去推广自托管有些讽刺,因为 AI 开发本身就是高度依赖集中式云服务的(少数人)
  • 不过这个质疑没有展开成激烈争吵,更像是一种气氛上的微妙不适(高赞但未被反驳)

类比和归属讨论:它到底算不算新东西

  • 多个评论者提到既有竞品,包括 Cloudron、Umbrel、Cosmos Cloud、CapRover、Coolify、Sandstorm,认为该项目与它们高度重叠或相似(较多)
  • 有人指出其「预置应用商店+统一认证」的观感更像一个小型移动应用商店,而不是真正开放的自托管平台: > 浏览预置应用库的感觉太像逛一个很迷你的 App Store 了(@skybrian)
  • 一位有十年自托管经验的老手总结了两条原则:存储和应用托管分离、尽量用维护者或 LinuxServer.io 提供的官方容器,而不是依赖厂商封装的插件;厂商封装看起来方便,最后往往变成被遗弃的技术债(少数人)

有价值的补充

  • 作者在文章里引了一段「前云时代开源可行」的话,立刻有评论反驳那是玫瑰色滤镜:旧软件在能力、可靠性和健壮性上普遍不如现代 SaaS
  • 技术实现上有一个亮点被单独拎出来:自建权威 DNS 很优雅,但也意味着无法用 Cloudflare 之类的服务抗 DDoS/机器人
  • 有评论认为官方文档里出现了 cloudinabottle.toml 和应用仓库里的 openhost.toml 不一致,怀疑项目中途改过名
  • 最严重的社区质疑是有人发现该项目团队在其它 GitHub 仓库的 issue 区刷推广,且没有披露自己的身份,被指「spam」: > 这些人一直在别人仓库的 issue 里推广自己的项目,却完全不披露自己与该项目的关联(@KomoD)