# Self-host and scale web apps
without the complexity

Take your Docker Compose apps to production with zero-downtime deployments, automatic HTTPS, and cross-machine scaling. No Kubernetes required.

Quick start
Star on GitHub

    # Start with any cloud VM or your own server

    $ uc machine init root@137.123.45.67

    # Deploy your app with automatic HTTPS

    $ uc run --name my-app -p app.example.com:8000/https app-image:latest

    ✨ Your app is available at https://app.example.com

    # Achieve high availability by adding more machines and scaling the app

    $ uc machine add ubuntu@65.21.45.67

    $ uc scale my-app 2

## PaaS-like workflow on your own servers

Deploy with the simplicity of Heroku or Fly.io while keeping full control over your infrastructure.

### Your infrastructure

- Full control over your servers and data
- Predictable costs without per-request pricing
- No vendor lock-in or platform dependencies
- SSH into machines and debug with standard tools

### Familiar Docker Compose workflow

- Build, push, and deploy with one command
- No image registry required
- Zero-downtime rolling deployments
- Scale replicas across machines

### Low maintenance

- No control plane or quorum to manage
- Secure cross-machine communication without opening ports
- Services find each other automatically
- Automatic HTTPS via Let's Encrypt

How it works

### Simple by design,
powerful in practice

Uncloud replaces complex clusters with a simple network of machines working seamlessly together — no maintenance overhead, just reliable infrastructure.

Secure private network
Each machine joins a WireGuard mesh network with automatic peer discovery and NAT traversal. Containers get unique IPs and can communicate directly across machines.
Fully decentralised
Unlike traditional orchestrators, there's no central control plane to maintain. Each machine maintains a synchronised copy of the cluster state through peer-to-peer communication, keeping cluster operations functional even if some machines go offline.
Smart CLI
Control your entire infrastructure using intuitive Docker-like commands from anywhere. Deploy, monitor, and scale applications across all your machines while the CLI only needs SSH access to a single machine.
Multi-provider cluster of 3 machines

### Deploy anywhere

Run your apps on any Linux machine — from cloud VMs and dedicated servers to bare metal at your office or home.

### Automatic HTTPS

Get free TLS certificates and automatic HTTPS for your domains with zero configuration using built-in Caddy reverse proxy.

### Load balancing

Distribute traffic across container replicas running on different machines for improved reliability and performance.

### Service discovery

Access any service by its name from any container using the built-in DNS that automatically tracks services across your network.

### Infrastructure as Code

Define your entire app stack in a familiar Docker Compose file. No need to learn a new config format.

### No vendor lock-in

Mix cloud providers and your own hardware freely to optimise costs and performance, without changing how you deploy or manage apps.

## See in action

Deploy a highly available web app with automatic HTTPS across multiple regions and on-premises in just a couple minutes.

## Be part of the development journey

Subscribe to follow the progress and get early insights into new features.
See previous newsletters.

Want to contribute? Check out the GitHub issues and join the Discord server.