Skip to Content
Self HostingConfiguración

Configuración

La configuración autohospedada pública es el cto-gui/docker-compose.self-hosted.yml incluido más ajustes leídos por cto-gui-libvirt-backend. Esta página documenta esa superficie de evaluación. No inventa un contrato genérico de entorno Enterprise.

Contrato Compose

SettingChecked-in valuePurpose
SELF_HOSTEDtrueSelect local-console mode and disable cloud-dependent routes
KVM_URIqemu:///systemConnect to the host system libvirt daemon
TEST_STORAGE_DIR/app/data/testsRetain test state, locks, and cleanup journals in cto-data
SOURCE_ISO_DIRHost source-ISO pathResolve read-only source artifacts at the same absolute path visible to host libvirt
SOURCE_GOLDEN_IMAGE_DIRHost promoted-image pathResolve immutable installed QCOW2 inputs at the same absolute path visible to host libvirt
TRUST_PROXY_HEADERStrue in the Compose filePermit proxy-derived client information subject to the backend’s trusted-proxy rules

El backend también por defecto sube ISO a /var/lib/libvirt/images y limita subidas a 10 GB salvo que el ajuste del backend se cambie deliberadamente.

Overrides de rutas del host

Dos variables de entorno shell afectan los bind mounts de Compose:

export SOURCE_ISO_HOST_DIR=/srv/openfactory/source-isos export SOURCE_GOLDEN_IMAGE_HOST_DIR=/srv/openfactory/golden-images docker compose -f docker-compose.self-hosted.yml up --build -d

Crea y asigna permisos a esos directorios primero. La ruta del contenedor se mantiene idéntica a la del host porque libvirt del host, no el contenedor, abre archivos de imagen para QEMU. Una ruta que existe solo dentro del contenedor fallará al lanzar el guest.

Datos persistentes y no persistentes

LocationOwnership and lifecycle
/var/lib/libvirt/imagesHost-managed uploaded ISOs, guest disks, and overlays
Source ISO directoryOperator-managed, mounted read-only
Golden-image directoryOperator-promoted immutable inputs, mounted read-only
cto-data named volumeBackend state including test records and cleanup journals
Container filesystem outside mountsDisposable; do not rely on it for recovery

Haz copia de seguridad o instantánea solo después de identificar qué recursos deben conservarse. El archivo Compose no programa copias de seguridad.

Exposición y ajustes de proxy

El frontend mapea el puerto 80 del host. TRUST_PROXY_HEADERS no proporciona TLS ni autenticación; solo cambia cómo el backend acepta metadatos de conexión reenviados desde rangos de proxy explícitamente de confianza. Si añades un reverse proxy, configura su ruta de red y proxies de confianza de forma estrecha y verifica que headers de reenvío falsificados se rechacen desde peers no confiables.

No coloques el console de evaluación directamente en internet pública. Identidad de producción, TLS, secretos y diseño de autorización es una decisión de despliegue aparte.

Valida cada cambio

Tras cambiar rutas o ajustes:

  1. recrea el contenedor afectado;
  2. verifica self_hosted: true mediante el endpoint de modo;
  3. sube y lanza un ISO desechable;
  4. detén y elimina el guest;
  5. reinicia la pila y confirma que el estado de limpieza y el inventario sobreviven.