Skip to Content
Self HostingKonfiguration

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

EinstellungEingecheckter WertZweck
SELF_HOSTEDtrueLocal-console mode wählen und cloud-abhängige Routes deaktivieren
KVM_URIqemu:///systemMit Host-system libvirt daemon verbinden
TEST_STORAGE_DIR/app/data/testsTest-State, Locks und Cleanup-Journals in cto-data behalten
SOURCE_ISO_DIRHost Source-ISO-PfadRead-only Source-Artefakte am selben absoluten Pfad wie Host-libvirt auflösen
SOURCE_GOLDEN_IMAGE_DIRHost promoted-image-PfadImmutable installierte QCOW2-Inputs am selben absoluten Pfad wie Host-libvirt auflösen
TRUST_PROXY_HEADERStrue in der Compose-DateiProxy-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 -d

Verzeichnisse 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

OrtOwnership und Lifecycle
/var/lib/libvirt/imagesHost-verwaltete hochgeladene ISOs, Gast-Disks und Overlays
Source-ISO-VerzeichnisOperator-verwaltet, read-only gemountet
Golden-image-VerzeichnisOperator-promoted immutable inputs, read-only gemountet
cto-data named volumeBackend-State inkl. Test-Records und Cleanup-Journals
Container-Filesystem außerhalb MountsDisposable; 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:

  1. betroffenen Container neu erstellen;
  2. self_hosted: true über Mode-Endpoint verifizieren;
  3. disposable ISO hochladen und starten;
  4. Gast stoppen und löschen;
  5. Stack neu starten und bestätigen, dass Cleanup-State und Inventar überleben.