Cloud Repositorio is an open-source cloud infrastructure manager that lets you provision and orchestrate QEMU/KVM virtual machines across a cluster of worker nodes. It uses a slice-based model for multi-tenancy, automated VLAN networking via Open vSwitch, and a CLI for day-to-day operations.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/markitobonito/cloud_repositorio/llms.txt
Use this file to discover all available pages before exploring further.
Quickstart
Deploy your first VM slice in minutes
Architecture
Understand how slices, workers, and networking fit together
Core Concepts
Learn about slices, VLANs, and worker scheduling
API Reference
Explore the Python API for programmatic control
Key features
Slice-based multi-tenancy
Each user gets isolated network slices with a dedicated VLAN pool. Quota enforcement prevents resource exhaustion.
QEMU/KVM provisioning
Launch cirros or Ubuntu VMs with thin-provisioned QCOW2 disk images on any worker node in the cluster.
Automated VLAN networking
Open vSwitch handles L2 connectivity between VMs. Each VM-to-VM link gets its own VLAN with a gateway and DHCP namespace.
Round-robin scheduling
VMs are distributed across worker nodes automatically. The orchestrator tracks resource usage per worker.
Internet access via NAT
Enable outbound internet access for any VM via MASQUERADE rules on the network node (VLAN 400).
YAML state persistence
All state — users, slices, VMs, VLANs — is stored in a YAML database with thread-safe writes and periodic health saves.
How it works
Cloud Repositorio organizes resources around three concepts:- Slices — an isolated virtual network containing one or more VMs and the links between them. Each slice gets a pool of 20 VLANs.
- Workers — hypervisor nodes (running QEMU/KVM and Open vSwitch) where VMs are launched over SSH.
- Network node — a dedicated node (
10.0.10.3by default) that hosts OVS bridges, VLAN gateways, and DHCP namespaces.
Cloud Repositorio requires SSH key-based access to all worker nodes and the network node. Ensure
ubuntu@<worker-ip> is reachable without a password before starting.