Skip to Content
Self HostingPrerequisites

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

RequirementVerification
KVM-capable Linux hosttest -e /dev/kvm
Running libvirt daemonvirsh -c qemu:///system list --all
Docker with Compose v2docker 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 capacityEnough 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.