Full virtual machines
QEMU/KVM
Cloud images, initial SSH accounts and public keys, with optional guest sudo. Stopped VMs support CPU/RAM updates and virtual-disk growth; guest partitions and filesystems grow separately.
Prepare a QEMU guest →A lightweight private cloud
TTstack gives developers and small teams one place to create, access, stop, restart and delete environments across a small fleet.
Architecture
The controller places workloads and coordinates environments. Each host agent owns its engines, disks and networking.
tt CLI
REST client
Browser dashboard
tt-ctl
Placement and lifecycle
Fleet observations
Controller
SQLite
tt-agent
One per resource host
Native engines and storage
Agent
SQLite
ttcore supplies API models, capability contracts and
host implementations.
Read the architecture guide →
Usage
With a configured CLI, a registered QEMU host and a prepared
alpine-cloud image, this example retains the guest
until you delete it.
tt env create demo --image alpine-cloud \
--engine qemu --cpu 1 --mem 256 --disk 2048 \
--ssh-key ~/.ssh/id_ed25519.pub --lifetime 0
tt env show demo
Use the guest IP from the agent host, or the configured SSH
endpoint reported by env show from a remote client.
Wait for SSH readiness.
# Stop retains the guest disk.
tt env stop demo
# Start boots the retained disk again.
tt env start demo
# Delete removes disks and recovery points.
tt env delete demo
Omit --lifetime 0 for the six-hour default; expiry also
deletes the guest disks. running describes the VM
process, not SSH or application readiness. Follow the
full installation walkthrough
and
SSH guide
for setup and access.
Engines
One lifecycle interface, with explicit requirements for each engine and storage backend.
Full virtual machines
Cloud images, initial SSH accounts and public keys, with optional guest sudo. Stopped VMs support CPU/RAM updates and virtual-disk growth; guest partitions and filesystems grow separately.
Prepare a QEMU guest →Prepared microVMs
A prepared kernel and ext4 rootfs under jailer, with resource limits, read-only configuration and stopped-VM resizing. Prepared images can support SSH; the built-in smoke image checks boot and networking only.
Prepare a Firecracker guest →Application containers
Images with a long-running default command and requested application ports. The selected runtime stays bound to the agent inventory. Container disk quotas, managed SSH and VM network policies are unavailable.
Prepare a container →Lifecycle
Creation is saved before provisioning. A timeout can leave running or partial resources; inspect the existing environment before retrying.
creatingactivestoppedfaileddeletingStart boots stopped guests; VM memory does not survive a stop. Delete and expiry remove guest storage and backups. The controller retries incomplete deletion; host reboot does not automatically restart guests. Lifecycle and recovery contract →
Operations
Capability checks guide admission. Runtime state, image eligibility and capacity still matter when each operation executes.
tt capabilities shows the design matrix.
tt host show HOST_ID shows scoped host prerequisites
and denial reasons.
CPU, memory and disk figures are configured budgets and reservations. VM placement prefers eligible zvol hosts, then packs by remaining memory.
Placement and storage →QEMU and Firecracker accept CPU/RAM changes and root-disk growth. Updates preserve the VM identity and disk; shrinking is unsupported.
Offline resource updates →Opt-in, stopped-only backups use qualified zvol snapshots or strict Linux file reflinks. Restore overwrites the current disk and leaves the VM stopped.
Backup eligibility and retries →Linux QEMU and Firecracker support routed outgoing denial and separate guest isolation from host services, peers and private networks.
Networking and isolation →Local recipes prepare guest images; deployment installs services. Register hosts separately and wait for their image catalog before placement.
Images and discovery →Scope and access
Documentation
Current behavior lives in maintained guides. Proposals retain design context; validation reports record evidence at specific revisions.
Ownership, request flow, persistence and placement.
Prerequisites, installation, fleet setup and upgrades.
Recipes, storage layouts and guest networking.
Requests, returned states and failure recovery.
Accounts, public keys, endpoints and readiness.
Design support, scoped host reports and admission.
Recovery points, destructive restore and exact retries.
Platform limits, CI and recorded live evidence.