Skip to Content
Self HostingВстановлення

Встановлення

These steps install checked-in self-hosted VM console on one KVM host. They do not install hosted image builder or establish production Enterprise deployment.

1. Verify the Source

Check out intended OpenFactory revision and review local changes before building containers:

git status --short git rev-parse HEAD

Use reviewed release or commit. Compose workflow builds images from local cto-gui and cto-gui-libvirt-backend source trees.

2. Create Host Directories

sudo install -d -m 0755 /opt/openfactory/iso sudo install -d -m 0755 /var/lib/libvirt/images/.openfactory-golden

Paths mounted read-only inside backend for source artifacts. Guest disks and uploaded ISOs use /var/lib/libvirt/images.

3. Preflight KVM and Libvirt

test -e /dev/kvm test -S /var/run/libvirt/libvirt-sock virsh -c qemu:///system list --all docker compose version

Stop if any command fails. Fix host service, group membership, or socket location before starting containers.

4. Start the Console

Run from cto-gui directory:

docker compose -f docker-compose.self-hosted.yml up --build -d docker compose -f docker-compose.self-hosted.yml ps

Open http://localhost/ from host. For remote evaluation restrict port 80 at host firewall and use trusted private path to host.

5. Verify the Running Mode

Confirm frontend loads, then inspect backend mode response from network path available in deployment. Must report self_hosted: true. Feature map should show hosted builds, conversations, scheduling, and policy documents as unavailable.

Next upload disposable test ISO, create small VM, open VNC console, stop VM, delete it. Confirm guest disk and libvirt domain removed as expected before using larger images.

Rollback

Stop evaluation without deleting named volume:

docker compose -f docker-compose.self-hosted.yml down

Leaves uploaded images, libvirt resources, source directories, and cto-data volume intact. Inventory those resources before any deletion. Do not use down --volumes unless explicitly intend to destroy retained console state and cleanup journals.