Configuração
A configuração self-hosted pública é o cto-gui/docker-compose.self-hosted.yml versionado mais configurações lidas pelo cto-gui-libvirt-backend. Esta página documenta essa superfície de avaliação. Não inventa contrato genérico de ambiente Enterprise.
Contrato Compose
| Configuração | Valor versionado | Propósito |
|---|---|---|
SELF_HOSTED | true | Seleciona mode console local e desabilita rotas dependentes de cloud |
KVM_URI | qemu:///system | Conecta ao daemon libvirt system do host |
TEST_STORAGE_DIR | /app/data/tests | Retém estado de teste, locks e journals de cleanup em cto-data |
SOURCE_ISO_DIR | Path de ISO de origem no host | Resolve artefatos de origem read-only no mesmo path absoluto visível ao libvirt do host |
SOURCE_GOLDEN_IMAGE_DIR | Path de imagem promovida no host | Resolve entradas QCOW2 instaladas imutáveis no mesmo path absoluto visível ao libvirt do host |
TRUST_PROXY_HEADERS | true no arquivo Compose | Permite informação de cliente derivada de proxy sujeita às regras de proxy confiável do backend |
O backend também default uploads de ISO para /var/lib/libvirt/images e limita uploads a 10 GB salvo se a configuração do backend for alterada deliberadamente.
Overrides de path no host
Duas variáveis de ambiente shell afetam bind mounts do 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 -dCrie e permissione esses diretórios primeiro. O path do container é mantido idêntico ao do host porque libvirt do host, não o container, abre arquivos de imagem para QEMU. Path que existe só dentro do container falhará no launch do guest.
Dados persistentes e não persistentes
| Local | Ownership e ciclo de vida |
|---|---|
/var/lib/libvirt/images | ISOs enviados, discos guest e overlays gerenciados pelo host |
| Diretório de ISO de origem | Gerenciado pelo operador, montado read-only |
| Diretório golden-image | Entradas imutáveis promovidas pelo operador, montadas read-only |
Volume nomeado cto-data | Estado do backend incluindo registros de teste e journals de cleanup |
| Filesystem do container fora de mounts | Descartável; não dependa dele para recovery |
Faça backup ou snapshot só depois de identificar quais recursos devem ser retidos. O arquivo Compose não agenda backups.
Exposição e configurações de proxy
O frontend mapeia porta 80 do host. TRUST_PROXY_HEADERS não fornece TLS nem autenticação; só altera como o backend aceita metadados de conexão encaminhados de ranges de proxy explicitamente confiáveis. Se adicionar reverse proxy, configure caminho de rede e proxies confiáveis de forma estreita e verifique que headers de forwarding falsificados são rejeitados de peers não confiáveis.
Não coloque o console de avaliação diretamente na internet pública. Identidade, TLS, segredos e design de autorização de produção são decisão de deployment separada.
Valide toda alteração
Depois de mudar paths ou configurações:
- recrie o container afetado;
- verifique
self_hosted: truepelo endpoint de mode; - envie e lance ISO descartável;
- pare e delete o guest;
- reinicie a stack e confirme que estado de cleanup e inventário sobrevivem.