diff --git a/README.md b/README.md index 39c0c79..d5edfc6 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,9 @@ See [limitations and architecture](docs/ARCHITECTURE.md) and [provenance](docs/P Future upstream updates: [Upgrade-Info (Deutsch)](docs/UPGRADE_INFO.md). +Prebuilt-image installation: [Container Registry](docs/CONTAINER_REGISTRY.md) +(publication currently pending registry authentication). + ## Debian / Docker deployment Prerequisites: Docker Engine + Compose; a separately configured LTX Desktop backend; diff --git a/compose.registry.yaml b/compose.registry.yaml new file mode 100644 index 0000000..a66e9cb --- /dev/null +++ b/compose.registry.yaml @@ -0,0 +1,6 @@ +# Use after compose.yaml to install a prebuilt image without a build context. +services: + ltx-deskweb: + build: !reset null + image: ${LTX_DESKWEB_IMAGE:-git.casaderoll.de/michael/ltx-deskweb:0.1.0-5b887df} + platform: linux/amd64 diff --git a/docs/CONTAINER_REGISTRY.md b/docs/CONTAINER_REGISTRY.md new file mode 100644 index 0000000..411241f --- /dev/null +++ b/docs/CONTAINER_REGISTRY.md @@ -0,0 +1,66 @@ +# Fertiges Image vom Git-Server beziehen + +Die Container Registry ist ein separater Paketbereich desselben Git-Servers. +Images gehören nicht als große Binärdateien in die Git-Historie. Der Quellcode, +Dockerfile und die Compose-Dateien bleiben im Repository. + +## Aktueller Veröffentlichungsstand + +Ziel: `git.casaderoll.de/michael/ltx-deskweb:0.1.0-5b887df` + +Architektur: **linux/amd64** (Athena / Debian auf x86-64). +Quellstand: `5b887df`, einschließlich des Fixes für gemeinsam lesbare Uploads. +Das Image ist bereits auf Athena gebaut. **Die Veröffentlichung wartet noch auf +einen autorisierten Registry-Login.** Solange dieser Abschnitt nicht aktualisiert +ist, ist der folgende Pull-Befehl eine Installationsvorbereitung, kein Nachweis, +dass das Paket bereits verfügbar ist. + +## Manuelle Installation ohne lokalen Image-Build + +Repository klonen und `.env`, Secrets sowie gemeinsame Medienverzeichnisse wie +in README.md beschrieben einrichten. Zugangsdaten niemals in Git speichern. +Bei privaten Paketen auf dem Zielserver interaktiv anmelden: + +```sh +docker login git.casaderoll.de --username michael +``` + +Ein eventuell verwendeter Zugriffstoken benötigt zum Veröffentlichen +Paket-Schreibrechte, zum Herunterladen Leserechte. Rechteumfang und Sichtbarkeit +im Git-Server prüfen; die Anwendung nicht unbeabsichtigt öffentlich freigeben. +Passwort/Token interaktiv eingeben, nicht als Befehlsargument oder Chatnachricht. + +Fertiges Image herunterladen und starten: + +```sh +docker compose -f compose.yaml -f compose.registry.yaml pull ltx-deskweb +docker compose -f compose.yaml -f compose.registry.yaml up -d --no-build ltx-deskweb +``` + +Für Athenas bestehende Loopback-Verbindung zusätzlich das Host-Override verwenden: + +```sh +docker compose -p ltx-deskweb -f compose.yaml -f compose.registry.yaml \ + -f deploy/compose.athena.yaml pull ltx-deskweb +docker compose -p ltx-deskweb -f compose.yaml -f compose.registry.yaml \ + -f deploy/compose.athena.yaml up -d --no-build --no-deps ltx-deskweb +``` + +Die Deck-Labels werden aus compose.yaml übernommen. Dieser Container enthält nur +die GUI, ihren Webdienst und ffmpeg, keine LTX-Modelle oder GPU-Laufzeit. Diese +Anleitung ersetzt nicht die separate Einrichtung des LTX-Backends. + +## Versionen veröffentlichen + +- Geprüften Quellstand bauen und mit eindeutiger Version/Commit-Kennung markieren. +- Image in `git.casaderoll.de/michael/ltx-deskweb` pushen. +- Registry-Manifest und Digest prüfen; anschließend Pull testen. +- Veröffentlichten Digest und Tests hier bzw. in den Release-Notizen dokumentieren. +- Versionstags nicht mit späteren Builds überschreiben; keine unkontrollierten + Produktivupdates über `latest`. +- Für eine neue Version `LTX_DESKWEB_IMAGE` in `.env` auf den geprüften Tag oder + `git.casaderoll.de/michael/ltx-deskweb@sha256:...` setzen. + +Ein fertiges Image muss nicht von der Zielmaschine gebaut werden. Ein zukünftiger +CI-Workflow kann das Bauen und Veröffentlichen übernehmen; ein solcher Workflow +ist derzeit noch nicht eingerichtet. Upgrade-Ablauf: [UPGRADE_INFO.md](UPGRADE_INFO.md).