基于 Docker 的自托管迷你 Heroku,可在自有服务器上通过 git push 部署和管理应用。
- Star
- 5,566
- Fork
- 184
- 未关闭 Issue
- 89
- 最近提交
- 10天前
这是什么?
Uncloud 是一个轻量工具,用于在一组 Docker 主机上运行容器化 Web 应用,主机可以是云服务器、独立服务器或裸金属机器。它会在这些机器之间自动搭建 WireGuard 网状网络,不同主机上的容器各自拥有唯一 IP,可以直接互通。
集群没有中心化的控制平面,也不需要维持仲裁。每台机器通过点对点通信保存一份同步的集群状态,部分机器离线时集群操作仍可继续。服务使用 Docker Compose 格式定义,命令行工具的用法与 Docker 相近。内置的服务发现、负载均衡,以及基于 Caddy 的反向代理,可以处理入口流量并自动配置 HTTPS。
适合希望在自有机器上托管应用、需要多台 Docker 主机协同,但又不想维护 Kubernetes 的开发者。
核心功能
- 01在 Docker 主机之间自动组建 WireGuard 网状网络,并支持节点自动发现。
- 02直接使用标准 Docker Compose 文件定义服务和数据卷。
- 03内置基于 DNS 的服务发现和负载均衡。
- 04通过 Caddy 处理 HTTPS 入口,自动申请和续期 Let's Encrypt 证书。
- 05支持滚动更新,部署过程中服务不中断。
- 06没有中心控制平面,不存在单点故障。
适用场景
- 在几台云服务器或家庭服务器上托管自有 Web 应用。
- 在多个地区或多家云服务商之间运行高可用服务。
- 在多台机器之间管理数据卷,自托管有状态服务。
- 在不引入 Kubernetes 的前提下,从单台 Docker 主机扩展为多机部署。
快速上手
- 1
用 Homebrew 安装 Uncloud CLI
brew install psviderski/tap/uncloud - 2
通过 SSH 初始化第一台机器
uc machine init root@your-server-ip - 3
部署 Docker 镜像,并将端口 8000 以 HTTPS 方式发布到你的域名
uc run -p app.example.com:8000/https image/my-app - 4
在 DNS 服务商处创建 A 记录,将域名指向服务器 IP 地址,然后等待 DNS 生效
使用前须知
- 根据 README,失败时自动回滚功能目前尚不可用。
- 部署需要通过 SSH 访问你自己的服务器,并且每台机器都会安装 Docker 和机器守护进程。
收录于专题
标签
常见问题
- uncloud 是什么?
- 在自有 Docker 主机之间部署和扩展容器化应用,基于 WireGuard 组网,无需 Kubernetes 或 Swarm。 Uncloud 是一个轻量工具,用于在一组 Docker 主机上运行容器化 Web 应用,主机可以是云服务器、独立服务器或裸金属机器。它会在这些机器之间自动搭建 WireGuard 网状网络,不同主机上的容器各自拥有唯一 IP,可以直接互通。
- uncloud 可以免费使用吗?用的什么许可证?
- uncloud 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- uncloud 还在维护吗?
- 活跃维护中。uncloud 最近一次提交是在 2026年10月14日。
- uncloud 适合用来做什么?
- 在几台云服务器或家庭服务器上托管自有 Web 应用。 在多个地区或多家云服务商之间运行高可用服务。 在多台机器之间管理数据卷,自托管有状态服务。 在不引入 Kubernetes 的前提下,从单台 Docker 主机扩展为多机部署。
- uncloud 怎么安装和运行?
- 用 Homebrew 安装 Uncloud CLI: brew install psviderski/tap/uncloud 通过 SSH 初始化第一台机器: uc machine init root@your-server-ip 部署 Docker 镜像,并将端口 8000 以 HTTPS 方式发布到你的域名: uc run -p app.example.com:8000/https image/my-app 在 DNS 服务商处创建 A 记录,将域名指向服务器 IP 地址,然后等待 DNS 生效
- 在哪里获取 uncloud?
- 源代码和安装说明在 GitHub 上:https://github.com/psviderski/uncloud
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
可自托管的持续交付与部署平台,支持容器化应用的版本管理,兼容 Docker、Podman 和 Kubernetes。
基于 Kubernetes 的开源 PaaS,通过一个 CLI 和控制台管理从部署到监控的应用与基础设施。
可自托管的部署平台,通过 SSH 将应用、数据库和一键服务部署到你自己的服务器,可替代 Heroku、Netlify 和 Vercel。
可自托管的 PaaS 平台,用于在自有 VPS 上部署应用和数据库,可替代 Vercel、Netlify 和 Heroku。
可在自有服务器上部署应用和数据库的自托管 PaaS,基于 Docker、Nginx 和 Let's Encrypt。