← Back to archive

Repo of the Day

ubicloud/ubicloud: Open source alternative to AWS. Elastic compute, block storage (non replicated), firewall and load balancer, managed Postgres, K8s, AI inference, and IAM services.

Published: Oct 30, 2026

Open repository ↗

Open source alternative to AWS. Elastic compute, block storage (non replicated), firewall and load balancer, managed Postgres, K8s, AI inference, and IAM services. - ubicloud/ubicloud

Summary

Ubicloud is an open-source cloud that can run on infrastructure you control, including bare metal from Hetzner, Leaseweb, and AWS Bare Metal, or through its managed service. It provides Linux VMs, managed PostgreSQL, Kubernetes, GitHub Actions runners, AI inference endpoints, private networking, firewalls, load balancers, and non-replicated block storage. Its Ruby control plane stores resource state in PostgreSQL and reconciles data-plane resources over SSH.

What it is useful for

Ubicloud is useful when an engineering team needs cloud-style infrastructure without depending entirely on a proprietary provider. The README gives several concrete cases:

  • CI infrastructure: GitHub Actions runners are available in x64 and arm64 sizes, with a standard or premium configuration. Moving an existing workflow to another runner type is described as changing its runs-on value.
  • Managed PostgreSQL: Teams can provision PostgreSQL with high availability, one or two standbys, read replicas, point-in-time restore, major-version upgrades, PgBouncer, and metrics and log export. It can run on Ubicloud bare metal or on AWS and GCP.
  • A self-managed cloud: Organizations with existing bare-metal machines can turn them into a cloud control plane. The README specifically identifies portability, security, and compliance as reasons to do this.
  • Different management interfaces: Resources can be handled through the cloud console, a REST API with an OpenAPI specification, the ubi CLI, or a Terraform provider.

The architecture is useful to engineers studying cloud control planes as well. A Ruby control plane stores desired state in PostgreSQL, while state machines called “progs” move resources toward that state by running commands on data-plane hosts over SSH. Cloud Hypervisor provides virtualization, ubiblk supplies block storage, and networking uses IPsec and Linux nftables.

How engineers can use it

The quickest documented route is Ubicloud’s managed platform, which requires no local installation and is available through the cloud console.

For a local development cloud, the README documents these commands:

git clone [email protected]:ubicloud/ubicloud.git
./demo/generate_env
docker-compose -f demo/docker-compose.yml up

The console is then available at localhost:3000. To connect leased servers, add HETZNER_USER, HETZNER_PASSWORD, HETZNER_SSH_PUBLIC_KEY, and HETZNER_SSH_PRIVATE_KEY to .env. Install Ubuntu 24.04 through the Hetzner Robot rescue system, then cloudify each instance:

docker exec -it ubicloud-app ./demo/cloudify_server

There are practical limitations. The current cloudification script supports Hetzner-leased bare metal, and newly created VMs receive IPv6 addresses; networks without IPv6 require a VPN or tunnel broker, or leased IPv4 addresses added to the control plane. Block storage is also explicitly non-replicated. For contributor setup, the README accepts any method of obtaining Ruby and PostgreSQL and points to DEVELOPERS.md for the team’s mise-based workflow rather than giving one complete dependency-install command.