From 43c20b14c7d4c5f883e34f768eafa8c73d7710b1 Mon Sep 17 00:00:00 2001 From: Umut Kantarci Date: Sun, 13 Sep 2026 20:56:56 +0200 Subject: [PATCH] Release veroeffentlichen: Ablauf dokumentiert, ADMIN_PATH in der Vorlage Das Archiv und install.php gehoeren als Anhang an das Git-Release des passenden Tags - genau dort erwartet install.php sie. Ein privates Repository liefert diese Adresse nicht ohne Anmeldung aus; das steht jetzt in docs/UPDATE.md, samt der Alternative ueber --url=. Co-Authored-By: Claude Opus 5 --- .env.example | 3 +++ docs/UPDATE.md | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/.env.example b/.env.example index f02b9f0..937b1c8 100644 --- a/.env.example +++ b/.env.example @@ -9,3 +9,6 @@ DATABASE_URL="sqlite:///%kernel.project_dir%/var/cms.db" SITE_ORIGIN=https://example.de MEDIA_DIRECTORY="%kernel.project_dir%/var/media" MAILER_DSN=sendmail://default +# Die Adresse der Verwaltung. Ohne Eintrag: /admin. Aenderbar mit +# `php bin/console cms:admin:path ` - der Befehl schreibt sie nach .env.local. +#ADMIN_PATH=admin diff --git a/docs/UPDATE.md b/docs/UPDATE.md index 6a4ae4c..1d5727b 100644 --- a/docs/UPDATE.md +++ b/docs/UPDATE.md @@ -62,6 +62,20 @@ Der teuerste Fall ist ein Update, das durchläuft und erst Tage später als fals - Kein `down()`-Rückweg für Migrationen. Der Rückweg ist die Sicherung, und das ist eine Entscheidung, nicht eine Lücke. - Kein Update ohne Sicherung, auch nicht mit Häkchen „ich weiß, was ich tue“. +## Ein Release veröffentlichen + +`php scripts/build-release.php` baut auf einem Rechner mit Composer das Archiv – Anwendung plus `vendor/` ohne Entwicklungspakete – und schreibt die SHA-256-Summe in eine Kopie von `install.php`. Beides gehört anschließend an das Git-Release des passenden Tags: + +``` +var/releases/kantsites-.zip → Release-Anhang +var/releases/kantsites-.zip.sha256 → Release-Anhang +var/releases/install.php → Release-Anhang +``` + +`install.php` erwartet das Archiv unter `https://git.kant-it.de/kantarci/KantSites/releases/download/v/kantsites-.zip`. Genau dort landet es, wenn es als Anhang am Release dieses Tags hängt – eine andere Adresse lässt sich beim Bauen mit `--url=` setzen. + +**Ein privates Repository liefert diese Adresse nicht aus.** Ohne Anmeldung antwortet sie mit 404, und `install.php` kann nichts herunterladen; das ist der Zweck der Prüfsumme, nicht ihr Fehler. Damit die Installation auf einem fremden Hosting funktioniert, müssen Archiv und Installer ohne Anmeldung erreichbar sein – entweder weil das Repository öffentlich ist, oder weil beide Dateien auf einem eigenen Webspace liegen und das Release mit `--url=` darauf gebaut wurde. + ## Offen, bevor das gebaut wird 1. ~~**Composer auf dem Server oder `vendor/` im Tag?**~~ Entschieden: `vendor/` gehört nicht ins Repository, sondern in ein Releasearchiv, das ein Build-Rechner erzeugt (`scripts/build-release.php`, SHA-256 daneben). Der Updater über Git bleibt für Installationen mit Composer und für Updates ohne Abhängigkeitsänderung.