If you already installed k7 previously, consider running
make uninstall
before reinstalling to avoid stale cached files in a previous .deb
.Requirements
- Linux (amd64) host with hardware virtualization (KVM)
- Check:
ls /dev/kvm
should exist - Cloud guidance: AWS
.metal
, GCP (enable nested virtualization), Azure D/Ev series; typical VPS often lack KVM
- Check:
- One raw, unformatted disk for thin‑pool provisioning (recommended for many sandboxes)
- Docker with Compose plugin (for the API)
- Install Docker:
curl -fsSL https://get.docker.com | sh
- Install Docker:
- Ansible for the installer (Ubuntu):
- Python 3.10+ on the client for the SDK
Tested setup example: Hetzner Robot instance, Ubuntu 24.04 (x86_64), with an extra empty NVMe disk (for the thin‑pool). See the detailed setup guide (PDF): k7_hetzner_node_setup.pdf.
Install the CLI (APT)
Install thek7
CLI on the node(s) that will host the VM sandboxes:
Install K7 on your node(s)
This installs and wires up Kubernetes (K3s), Kata, Firecracker, Jailer, and the devmapper snapshotter with thin‑pool provisioning:
You should see “Installation completed successfully!” when done. Add
-v
for verbose output.Start the API and manage keys
Start the API

Check API status

Get the public endpoint

Generate an API key

Stop the API

- Ensure your user is in the
docker
group to manage the API containers. - API keys are stored at
/etc/k7/api_keys.json
by default. Authentication acceptsX-API-Key
header orAuthorization: Bearer <token>
.
Create your first sandbox via CLI
Examplek7.yaml
:
Create a sandbox

Shell into your sandbox

List sandboxes

Delete a sandbox
Delete all sandboxes
Prerequisites for the SDK
Create your first sandbox via Python SDK
Install the SDK on your client machine:Next steps
- Explore the CLI guide:
/guides/cli
- Explore the Python SDK guide:
/guides/python-sdk
- Integrate with the REST API:
/api/introduction