Konfiguration
Die öffentliche self-hosted Konfiguration ist die eingecheckte
cto-gui/docker-compose.self-hosted.yml plus Einstellungen, die das
cto-gui-libvirt-backend liest. Diese Seite dokumentiert diese Evaluierungsoberfläche.
Sie erfindet keinen generischen Enterprise-Environment-Contract.
Compose-Contract
| Einstellung | Eingecheckter Wert | Zweck |
|---|---|---|
SELF_HOSTED | true | Local-console mode wählen und cloud-abhängige Routes deaktivieren |
KVM_URI | qemu:///system | Mit Host-system libvirt daemon verbinden |
TEST_STORAGE_DIR | /app/data/tests | Test-State, Locks und Cleanup-Journals in cto-data behalten |
SOURCE_ISO_DIR | Host Source-ISO-Pfad | Read-only Source-Artefakte am selben absoluten Pfad wie Host-libvirt auflösen |
SOURCE_GOLDEN_IMAGE_DIR | Host promoted-image-Pfad | Immutable installierte QCOW2-Inputs am selben absoluten Pfad wie Host-libvirt auflösen |
TRUST_PROXY_HEADERS | true in der Compose-Datei | Proxy-abgeleitete Client-Informationen unter trusted-proxy rules des Backends erlauben |
Das Backend defaulted ISO-Uploads außerdem auf /var/lib/libvirt/images und limitiert
Uploads auf 10 GB, sofern die Backend-Einstellung nicht bewusst geändert wird.
Host-Pfad-Overrides
Zwei Shell-Umgebungsvariablen beeinflussen Compose-Bind-Mounts:
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 -dVerzeichnisse zuerst anlegen und berechtigen. Der Container-Pfad bleibt identisch zum Host-Pfad, weil Host-libvirt, nicht der Container, Image-Dateien für QEMU öffnet. Ein Pfad, der nur im Container existiert, scheitert beim Guest-Launch.
Persistente und nicht persistente Daten
| Ort | Ownership und Lifecycle |
|---|---|
/var/lib/libvirt/images | Host-verwaltete hochgeladene ISOs, Gast-Disks und Overlays |
| Source-ISO-Verzeichnis | Operator-verwaltet, read-only gemountet |
| Golden-image-Verzeichnis | Operator-promoted immutable inputs, read-only gemountet |
cto-data named volume | Backend-State inkl. Test-Records und Cleanup-Journals |
| Container-Filesystem außerhalb Mounts | Disposable; nicht für Recovery verlassen |
Backup oder Snapshot erst nach Identifikation der zu behaltenden Ressourcen. Die Compose-Datei plant keine Backups.
Exposure und Proxy-Einstellungen
Das Frontend mappt Host-Port 80. TRUST_PROXY_HEADERS liefert weder TLS noch Authentifizierung;
es ändert nur, wie das Backend forwarded connection metadata von explizit trusted proxy ranges
akzeptiert. Fügen Sie einen Reverse Proxy hinzu, konfigurieren Sie Netzwerkpfad und trusted
proxies eng und verifizieren Sie, dass gespoofte Forwarding-Header von untrusted peers abgelehnt werden.
Platzieren Sie die Evaluierungskonsole nicht direkt im öffentlichen Internet. Produktions-Identität, TLS, Secrets und Authorization-Design sind separate Deployment-Entscheidung.
Jede Änderung validieren
Nach Pfad- oder Settings-Änderung:
- betroffenen Container neu erstellen;
self_hosted: trueüber Mode-Endpoint verifizieren;- disposable ISO hochladen und starten;
- Gast stoppen und löschen;
- Stack neu starten und bestätigen, dass Cleanup-State und Inventar überleben.