Skip to Content
Self HostingОцінка Docker Compose

Оцінка Docker Compose

Public Docker Compose deployment packages self-hosted VM console for single KVM host. It builds from local source, mounts host virtualization resources, and exposes frontend on port 80.

Start and inspect

From cto-gui:

docker compose -f docker-compose.self-hosted.yml up --build -d docker compose -f docker-compose.self-hosted.yml ps docker compose -f docker-compose.self-hosted.yml logs --tail=200 backend frontend

Both services should be running. Backend must connect to qemu:///system; healthy container that cannot reach libvirt is not usable deployment.

What Compose does

  • builds backend from ../cto-gui-libvirt-backend;
  • builds frontend from cto-gui/Dockerfile.frontend with self-hosted UI mode enabled;
  • passes /dev/kvm and libvirt socket to privileged backend container;
  • mounts /var/lib/libvirt/images read-write;
  • mounts source ISO and promoted golden-image directories read-only;
  • stores backend data in cto-data named volume;
  • restarts both services unless explicitly stopped.

What Compose does not do

It does not configure TLS, production identity provider, high availability, external database, off-host backups, secrets manager, log shipping, automatic updates, or multi-host scheduler. restart: unless-stopped is container restart policy, not service high availability.

Updating an evaluation

Record current commit and inventory running guests before rebuilding:

git rev-parse HEAD docker compose -f docker-compose.self-hosted.yml ps virsh -c qemu:///system list --all docker compose -f docker-compose.self-hosted.yml build --pull docker compose -f docker-compose.self-hosted.yml up -d

Afterward repeat mode, ISO launch, VNC, stop, delete, and restart checks. Repository does not promise zero-downtime Compose upgrade.

Stop without erasing state

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

Avoid --volumes during routine stop or upgrade. Named volume contains durable test state and cleanup journals used after restart.