Uncloud - Tool for deploying containerised apps across servers without k8s

What Uncloud Provides

  • Multi‑machine “Docker Compose++” orchestrator: uses the Compose spec, builds images and pushes directly to nodes (via a companion “unregistry”), sets up a WireGuard mesh, internal DNS, and Caddy‑based HTTPS.
  • No central control plane: each node holds a p2p‑synced copy of cluster state (via Fly.io’s Corrosion). Any node can be the entry point for uc CLI commands.
  • Features include: cross‑machine service discovery, internal IPs per container, optional “nearest” routing for local replicas, zero‑downtime rollouts at the container level, and multi‑cluster contexts.

Architecture and Control‑Plane Trade‑offs

  • Deployments are driven by an imperative CLI, but the tool still computes a diff between the Compose spec and cluster state and applies a plan.
  • No automatic rescheduling or autoscaling; HA is achieved by pre‑deploying multiple replicas across machines. Author is wary of reproducing K8s‑style placement/affinity complexity.
  • Network partitions do not stop existing workloads; each partition keeps working and can be updated independently.

Comparison with Kubernetes, k3s, and Nomad

  • Pro‑K8s voices argue:
    • With k3s and managed offerings, small clusters are “easy enough,” highly standardized, and backed by a huge ecosystem (ingress, certs, storage, observability, GitOps, etc.).
    • YAML boilerplate aside, manifests can be straightforward, and upgrades are manageable with care.
  • Skeptical voices argue:
    • Real pain is cluster lifecycle, control‑plane HA, API deprecations, storage and networking complexity, and debugging overlay networks—overkill for a handful of mostly static services.
    • For small on‑prem/regulated deployments, running your own control plane (even k3s) adds many components and failure modes.
  • Nomad is seen as still having a control plane and a learning curve; its newer license complicates SaaS usage.

Target Use Cases and Relation to Other Tools

  • Aimed at homelabs and small teams that outgrew single‑node Docker/quadlets but don’t want to “do Kubernetes,” and at Swarm users worried about project stagnation.
  • Compared to PaaS tools (Dokku, Coolify, Dokploy, Kamal), Uncloud sits lower: CLI‑only, no central server, but with stronger multi‑node networking and image distribution; could be a foundation for higher‑level UIs.

Concerns and Open Issues

  • Installation currently uses curl | bash as root on target machines, which multiple commenters find unacceptable; author acknowledges and plans proper packaging, noting --no-install as a workaround.
  • No secrets management yet (planned), no stack‑level network isolation, limited IPv6 support (works but not default), and no autoscaling.
  • Some worry about non‑standard tooling for hiring/onboarding; others welcome a simpler alternative despite that.