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
| Setting | Checked-in value | Purpose |
|---|---|---|
SELF_HOSTED | true | Select local-console mode and disable cloud-dependent routes |
KVM_URI | qemu:///system | Connect to the host system libvirt daemon |
TEST_STORAGE_DIR | /app/data/tests | Retain test state, locks, and cleanup journals in cto-data |
SOURCE_ISO_DIR | Host source-ISO path | Resolve read-only source artifacts at the same absolute path visible to host libvirt |
SOURCE_GOLDEN_IMAGE_DIR | Host promoted-image path | Resolve immutable installed QCOW2 inputs at the same absolute path visible to host libvirt |
TRUST_PROXY_HEADERS | true in the Compose file | Permit 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 -dCrea 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
| Location | Ownership and lifecycle |
|---|---|
/var/lib/libvirt/images | Host-managed uploaded ISOs, guest disks, and overlays |
| Source ISO directory | Operator-managed, mounted read-only |
| Golden-image directory | Operator-promoted immutable inputs, mounted read-only |
cto-data named volume | Backend state including test records and cleanup journals |
| Container filesystem outside mounts | Disposable; 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:
- recrea el contenedor afectado;
- verifica
self_hosted: truemediante el endpoint de modo; - sube y lanza un ISO desechable;
- detén y elimina el guest;
- reinicia la pila y confirma que el estado de limpieza y el inventario sobreviven.