Uncloud is a lightweight tool for deploying and managing containerised applications across a cluster of Linux machines. Connect any cloud VMs or bare-metal servers into a secure WireGuard mesh network, then deploy and scale services using familiar Docker Compose files and Docker-like CLI commands.
It sits in the gap between Docker Compose (single-machine only) and Kubernetes (powerful but complex): you get zero-downtime rolling deployments, automatic HTTPS, cross-machine service discovery, and load balancing - with no central control plane to maintain and roughly 150 MB RAM overhead per node.
Links: GitHub · Documentation · Discord · Community Recipes
Follow a Tutorial
Tutorials are guided paths with concrete tasks and step-by-step instructions.
Loading tutorial...
Loading tutorial...
Start in a Playground
Playgrounds are open-ended environments with a pre-configured Uncloud cluster. Use them to experiment freely without any local setup.
Loading playground...
The playground has two server nodes (server-1, server-2) and a dev-machine control node with the uc CLI ready to use:
# List all machines in the cluster
uc machine ls
# Run an Nginx container across the cluster
uc run nginx:latest --name web --publish app.example.com:80/http
# Scale the service to 2 replicas (one per server)
uc scale web 2
Suggested Learning Path
- Complete the Set Up a New Cluster tutorial to learn how to initialise a cluster from scratch, add machines, and deploy your first service.
- Complete the Deploy a Django App tutorial to see how to ship a Python web application directly from source code — no external container registry required.
- Open the Uncloud Cluster playground to experiment freely on a live two-node cluster with the
ucCLI.