PnPaaS – Installation ohne Shellzugriff
========================================

Voraussetzungen
---------------
- Webhosting mit PHP 8.1 oder neuer
- PHP-Erweiterungen pdo_mysql, curl und mbstring
- Eine bereits angelegte MariaDB/MySQL-Datenbank
- Ein bereits angelegter Datenbankbenutzer mit Rechten auf diese Datenbank
- HTTPS für die öffentliche Domain
- Schreibrechte des Webserver-Benutzers auf `app/includes/` während der Installation

Installation per Browser
------------------------
1. Archiv lokal entpacken.
2. Den gesamten Inhalt des Verzeichnisses `app/` per FTP, SFTP oder Hosting-Dateimanager direkt in das gewünschte Webverzeichnis hochladen – entweder in ein Unterverzeichnis wie `public_html/pnpaas/` oder direkt in den Webroot `public_html/`.
3. Im Browser `https://DEINE-DOMAIN/installer.php` öffnen. Liegt die Anwendung in einem Unterverzeichnis, lautet die URL entsprechend `https://DEINE-DOMAIN/pnpaas/installer.php`.
4. MariaDB-Zugangsdaten, Administrator, öffentliche HTTPS-URL sowie Portainer- und Rechtstext-Daten eingeben.
5. Der Browser-Assistent importiert Schema und Migrationen, legt den Administrator an und schreibt die geschützte Konfiguration nach `includes/runtime-config.php`.
6. Nach erfolgreicher Installation wird `installer.php` automatisch gelöscht. Falls das Hosting das Löschen von PHP-Dateien blockiert, bleibt die Datei durch `.install-complete` gesperrt und muss über den Dateimanager gelöscht werden.

Wichtig
-------
- Es werden keine MariaDB-Root-Zugangsdaten benötigt oder abgefragt.
- Die Datenbank und der eingeschränkte Datenbankbenutzer müssen vor dem Browser-Aufruf über das Hosting-Panel existieren.
- `includes/`, `database/`, `.env`, SQL-Dateien und die Laufzeitkonfiguration sind durch `.htaccess` geschützt. Die Regeln müssen vom Hosting unterstützt werden.
- `installer.php` darf nach der Einrichtung nicht dauerhaft im Webverzeichnis verbleiben.
- Die Anwendung setzt sichere Cookies voraus und muss produktiv über HTTPS laufen.

Nach der Installation prüfen
----------------------------
- Anmeldung mit dem Administrator-Konto
- HTTP-403 für `/includes/` und `/database/`
- Keine Auslieferung von `runtime-config.php` oder `.install-complete`
- Portainer-Zugriff
- Registrierung erst nach Konfiguration der Rechtstext-URLs

Alternative für Server mit Shellzugriff
--------------------------------------
Das Paket enthält weiterhin `install.sh` für eine vollständig serverseitige Installation. Für den hier beschriebenen Ablauf ist jedoch weder Shellzugriff noch der Aufruf dieses Skripts erforderlich.
