Prerequisites
Use a dedicated Linux evaluation host. The public self-hosted deployment has administrative access to KVM and libvirt, so do not begin on a production hypervisor or expose it to an untrusted network.
Host Requirements
| Requirement | Verification |
|---|---|
| KVM-capable Linux host | test -e /dev/kvm |
| Running libvirt daemon | virsh -c qemu:///system list --all |
| Docker with Compose v2 | docker compose version |
| Host image directory | /var/lib/libvirt/images exists and has enough space |
| Source-ISO directory | /opt/openfactory/iso exists, or set an explicit host path |
| Promoted-image directory | /var/lib/libvirt/images/.openfactory-golden exists if installer-only images will be used |
| Free capacity | Enough CPU, memory, and disk for the containers plus every concurrent guest |
qemu-img is also required on the host if you promote an installed QCOW2 into
the immutable golden-image path.
Access Check
Confirm the operator can use Docker and that the Docker daemon can mount the
libvirt socket and /dev/kvm. A common KVM permission repair is:
sudo usermod -aG kvm "$USER"Log out and back in before retesting. Do not work around a permission failure by
making /dev/kvm or the libvirt socket world-writable.
Network and Security Decision
Before startup, decide who can reach host port 80. The default Compose file has no TLS termination and is intended for a trusted evaluation network. Bind or filter the port at the host firewall; do not publish it on the internet.
Also decide:
- which operators may upload or launch images;
- how evaluation data will be removed afterward;
- whether guest networks may reach the host, local network, or internet;
- which source ISOs and golden images are licensed and approved for use.
Inputs to Record
Record the Git commit being evaluated, host distribution, Docker version, libvirt/QEMU versions, chosen directories, available capacity, and network exposure. Those facts make failures reproducible and prevent an evaluation result from being mistaken for qualification of another host.