Add guided installer for SaaS application setup

- Updated README.md to include instructions for guided installation on webspace without shell access.
- Enhanced installationshandbuch.md with detailed steps for using the guided installer.
- Modified saas-app/README.md to summarize the installation process using the new installer.
- Generated SQL migration bundle now includes timestamp for better tracking.
- Introduced public/install/index.php as the entry point for the guided installer.
- Updated public/index.php to reflect changes in installation steps and added links to the installer.
- Refactored migration bundle generation and SQL execution scripts for improved error handling and modularity.
- Implemented session-based CSRF protection in the installer.
- Added form handling for environment variable configuration and migration execution in the installer.
- Created a user-friendly HTML interface for the installer with status messages and error handling.
This commit is contained in:
2026-03-21 20:18:41 +01:00
parent 70e6d59c63
commit cb6e4e7dcb
13 changed files with 741 additions and 136 deletions
+24 -6
View File
@@ -4,6 +4,23 @@ Diese Anleitung beschreibt den vorgesehenen Weg fuer die SaaS-Version in
`saas-app/`. Sie ist auf Webspace-Betrieb ohne Docker und ohne dauerhafte
Worker ausgelegt.
## Empfohlener Weg Auf Webspace
Wenn auf dem Hosting keine Shell- oder CLI-Ausfuehrung moeglich ist, nutze den
gefuehrten Installer im Public-Pfad:
- `https://deine-domain.tld/install/`
Der Installer kann:
- die `.env` speichern
- das SQL-Bundle erzeugen
- Migrationen direkt per PHP ausfuehren, wenn `pdo_sqlsrv` verfuegbar ist
- sich nach erfolgreicher Einrichtung sperren
Die CLI-Skripte unter `scripts/*.php` bleiben als Alternative fuer lokale
Vorbereitung oder Server mit Shell-Zugriff erhalten.
## Voraussetzungen
- PHP 8.2 oder neuer
@@ -14,7 +31,7 @@ Worker ausgelegt.
- optional: SMTP-Zugang fuer Mails
- optional: OIDC-Provider fuer SSO
## Installation lokal
## Installation Lokal
1. Repository klonen.
2. Mit `php scripts/check-prerequisites.php` die Voraussetzungen pruefen.
@@ -26,7 +43,7 @@ Worker ausgelegt.
8. Einen ersten Benutzer und eine Mitgliedszuordnung anlegen.
9. Spaeter Composer und das eigentliche Laravel-Bootstrap nachziehen.
## Migrationen ausfuehren
## Migrationen Ausfuehren
Die aktuellen Dateien unter `saas-app/database/migrations/` sind SQL-Skizzen in
PHP-Dateien, keine Laravel-Migrationsklassen. Deshalb gibt es aktuell bewusst
@@ -70,9 +87,10 @@ eigene Umgebung angepasst werden:
1. Den Inhalt von `saas-app/` auf den Zielserver hochladen.
2. Das Document-Root auf `public/` zeigen lassen.
3. Schreibrechte fuer spaetere Storage-, Cache- und Queue-Bereiche sicherstellen.
4. `.env` serverseitig hinterlegen.
5. Die Anwendung einmal per Browser aufrufen und die Grundseiten pruefen.
3. Schreibrechte fuer `saas-app/`, `.env`, `.installer.lock` und `database/migrations/generated/` sicherstellen.
4. Den Installer unter `/install/` aufrufen und die Einrichtung durchfuehren.
5. Nach erfolgreicher Einrichtung den Installer sperren.
6. Die Anwendung einmal per Browser aufrufen und die Grundseiten pruefen.
## Cron- und Batch-Betrieb
@@ -89,7 +107,7 @@ Typische Aufgaben:
Empfehlung: pro Aufgabe einen klar benannten Cron-Eintrag anlegen und die
Ausgabe in Logdateien schreiben.
## Migration aus dem Legacy-System
## Migration Aus Dem Legacy-System
Wenn Daten aus der alten Root-Anwendung uebernommen werden sollen, folgt die
Reihenfolge: