Cloud in a Bottle 是什么?用自托管 Web 应用打造属于自己的云

发布时间:2026/10/14 17:46:43
Cloud in a Bottle 是什么?用自托管 Web 应用打造属于自己的云 【免费下载链接】cloud-in-a-bottleDeploy, use, and share web apps on a server you control. Your apps, data, and infrastructure stay yours.项目地址https://gitcode.com/gh_mirrors/cl/cloud-in-a-bottle点击查看免费下载Cloud in a Bottle简称 bottle是一个开源的自托管平台它让你在一台自己控制的服务器上一键部署、使用和分享 Web 应用。你的应用、数据和基础设施全部归你自己——不需要在几十个 SaaS 账号之间切换也不用手动折腾 Docker、Nginx 和证书。为什么需要瓶子里的云 大多数人能用的云都隔着一家公司——它们有完全不同的商业诉求。开源 Web 软件虽然很多但要把它们真正跑起来意味着你要和基础设施搏斗域名、反向代理、HTTPS、数据库、备份……Cloud in a Bottle 把这些复杂度一次性吞掉✅应用安装像手机 App 一样简单——从应用目录Catalog一键安装或粘贴一个 Git 仓库地址自动部署✅数据留在你自己的硬件上——服务器、虚拟机还是家里的旧电脑随你选✅默认安全——每个应用都跑在 rootless Podman 容器沙箱里默认只有你能访问✅一个域名走天下——通配符 DNS 自动 HTTPS每个应用自动获得应用名.你的域名的公网地址能部署什么应用个人小工具AI 生成的应用、脚本、没有地方托管的各种 utility开源软件Matrix 聊天、Minecraft 服务器、笔记、项目管理工具开发/创意工具编码 Agent、绘图软件或者你自己写的、想分享给别人的东西任何容器化 Web 应用只要仓库里有 Dockerfile再加一个cloudinabottle.toml清单文件就能部署仓库里自带的示例应用可以参考 apps/test_app/清单文件长这样apps/test_app/cloudinabottle.toml[app] name test-app version 0.1.0 [runtime.container] image Dockerfile port 5000它是怎么工作的⚙️整个实例就是一台机器 一个核心服务——Python 路由程序router一切围绕它展开组件职责Routeropenhost.service仪表盘 API、按子域名代理请求、构建和运行应用容器、管理域名与证书Caddy443 端口终结 TLS把请求转发给 routerCoreDNS负责你整个域名的权威 DNS提供通配符解析和证书签发App 容器每个应用一个 rootless Podman 容器互不可见System agent无权限的host用户做不到的主机级操作一次浏览器访问https://notes.mycooldomain.com/的完整链路DNS通配符记录*.mycooldomain.com解析到服务器公网 IPTLSCaddy 用通配符证书终结连接匹配router 从Host头取出应用名notes鉴权默认所有路径都需要 owner 登录未登录直接跳登录页代理请求转发到应用容器WebSocket 同样支持想深入了解可阅读官方文档中的工作原理概览。部署指南三步跑起来 前置条件一个你自己控制的域名可以用子域名如bottle.yourdomain.com一台带静态公网 IPv4的机器全新安装Ubuntu 24.04SSH root 访问权限放行80、443和53TCP/UDP端口第 1 步把域名委托给服务器Cloud in a Bottle 会运行自己的权威 DNS 服务器所以要把它整个 zone 委托出去。在 DNS 服务商处创建两条记录类型名称值Ans1.mycooldomain.com203.0.113.10NSmycooldomain.comns1.mycooldomain.com委托生效前用dig short NS mycooldomain.com确认一下。第 2 步运行安装脚本SSH 到机器上一条命令完成所有安装对应 scripts/provision.shcurl -fsSL https://raw.githubusercontent.com/cloud-in-a-bottle/cloud-in-a-bottle/main/scripts/provision.sh \ | sudo bash -s -- --domain mycooldomain.com --acme-email youexample.com脚本会创建无权限的host用户、安装 Podman、克隆代码、写入配置、注册 Lets Encrypt 账号并启动openhost服务。第 3 步认领你的实例公网实例采用 token 门控防止陌生人抢先。安装结束时输出一个 Claim URLClaim URL: https://mycooldomain.com/setup?claimtoken打开它创建你的 owner 账号——搞定 完整的云端部署步骤见 docs/src/setup/cloud_instance.md家用服务器场景也有专门的指南。日常使用全在浏览器里完成 打开https://你的域名/就是仪表盘Dashboard所有应用、状态和入口链接Catalog / Deploy app两种安装方式——目录里一键装或粘贴任意含cloudinabottle.toml的仓库 URLSettings账号、API token、域名、归档存储、平台更新System info内存、磁盘、每个应用的资源占用Terminal浏览器里直接开 shell不用 SSH 客户端新实例预装了一批实用应用Catalog应用商店、Backup加密备份、Files文件浏览器、Secrets密钥管理、OAuth provider托管你的 Google/GitHub token、Community chatMatrix 聊天。全部是普通应用随时可删。安装前请注意 ️安装页面会展示应用在其清单里声明的一切需要多少内存、要访问哪些数据、是否要其他应用的数据、额外 Linux capabilities、宿主机设备或网络权限。更新时同样会显示变更并需要你批准——平台默认给应用最小权限提权完全由你决定。应用数据存哪里️应用存储分三个层级清单文件控制容器能访问哪些层层级内容持久数据应用的永久数据数据库等存在你的实例上临时数据构建产物、容器日志等 scratch 空间归档存储大批量内容可用本地磁盘也可指向你配置的 S3 兼容存储详细机制见数据文档。如何打造自己的应用️想把自己写的 Web 应用部署上去两步仓库根目录放一个Dockerfile加一个cloudinabottle.toml清单声明名称、版本、端口、资源需求router 会自动克隆仓库、读取清单、用 rootless Podman 构建镜像、启动容器应用随后出现在https://app.your-domain/。完整的应用创建流程和清单字段说明在 docs/src/creating_an_app/ 下包括清单规范和跨应用服务。常见问题 Q安全吗应用之间能互相访问吗不能。每个容器只能看到自己的数据目录应用间的通信必须走带权限校验的 Service Interface任何未认证请求到不了应用。详见安全文档。Q可以不给别人访问权吗可以默认只有你能用。应用也可以通过清单的public_paths把特定路由开放给公网比如博客或分享链接。Q不想自己维护服务器项目方提供了托管服务Managed hosting帮你配好 SSH 后把实例交给你。也可以克隆仓库 https://link.gitcode.com/i/cb3366f426bfd3602b46334b7b8adfc2 在本地虚拟机里体验。Q怎么更新仪表盘 Settings 页面点按钮即可进度实时可见应用更新则在应用详情页手动触发。总结Cloud in a Bottle 把跑自己的云从系统工程活变成了点几次按钮的事一个 Python router 统一管路由、证书、容器和数据应用装起来像装手机 App数据永远躺在你自己的硬件里。对于厌倦了 SaaS 全家桶、又想把开源软件真正跑起来的人这是一条很平滑的入口。 赞分享【免费下载链接】cloud-in-a-bottleDeploy, use, and share web apps on a server you control. Your apps, data, and infrastructure stay yours.项目地址https://gitcode.com/gh_mirrors/cl/cloud-in-a-bottle点击查看免费下载相关推荐Brython 自定义 Web 组件实战用 browser.webcomponent 打造属于自己的 HTML 标签Brython 自定义 Web 组件实战用 browser.webcomponent 打造属于自己的 HTML 标签 browser.webcomponent编程语言语言运行时编译器前端GithubLauncher apps.json完整指南打造属于你自己的应用清单GithubLauncher apps.json完整指南打造属于你自己的应用清单 GithubLauncher 是一款开源的 GitHub 应用下载与更新启动RedwoodJS 自定义 Function 实战用 Serverless Function 打造属于自己的 API 端点RedwoodJS 自定义 Function 实战用 Serverless Function 打造属于自己的 API 端点 导读RedwoodJS 的每一次后端前端Web框架开发工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询