Repolode
psviderski

psviderski/uncloud

在自有 Docker 主机之间部署和扩展容器化应用,基于 WireGuard 组网,无需 Kubernetes 或 Swarm。

可替代:Heroku

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. 1

    用 Homebrew 安装 Uncloud CLI

    brew install psviderski/tap/uncloud
  2. 2

    通过 SSH 初始化第一台机器

    uc machine init root@your-server-ip
  3. 3

    部署 Docker 镜像,并将端口 8000 以 HTTPS 方式发布到你的域名

    uc run -p app.example.com:8000/https image/my-app
  4. 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 数据每日更新。

相关项目