2.8 KiB
PnPaaS
PnPaaS ist eine PHP-/MariaDB-Webanwendung zur Verwaltung von Benutzern und containerbasierten Instanzen über Portainer.
Funktionen
- Benutzerregistrierung mit E-Mail-Aktivierung
- Anmeldung und sichere Passwortverwaltung
- Passwort-Reset mit zeitlich begrenzten Einmal-Tokens
- CSRF-Schutz und sichere Session-Cookies
- geschütztes Benutzer- und Admin-Dashboard
- Verwaltung von Instanzanforderungen und Tarifen
- Portainer-Anbindung über serverseitigen API-Key
- Datenbank-Audit-Log
- Verwaltung von Rechtstext-Zustimmungen und Versionen
- Browserinstaller unter
/installer.php - Root- und Unterverzeichnisbetrieb ohne fest codierten Installationspfad
- Schutzregeln für Datenbank-, Include- und Konfigurationsdateien
Voraussetzungen
- PHP 8.1 oder neuer
- MariaDB/MySQL
- PHP-Erweiterungen
pdo_mysql,curlundmbstring - HTTPS im Produktivbetrieb
- eine bereits angelegte Datenbank und ein eingeschränkter Datenbankbenutzer
Browserinstallation ohne Shellzugriff
- Alle Dateien dieses Repositorys in das gewünschte Webverzeichnis hochladen.
https://example.org/installer.phpöffnen.- Bei einer Installation in einem Unterverzeichnis die entsprechende URL verwenden, zum Beispiel
https://example.org/pnpaas/installer.php. - Datenbank-, Administrator-, Portainer- und Rechtstextdaten eingeben.
- Der Installer importiert Schema und Migrationen und erstellt die geschützte Laufzeitkonfiguration.
- Nach erfolgreicher Einrichtung löscht sich
installer.phpselbst oder wird durch.install-completegesperrt.
Die MariaDB-Datenbank und der Anwendungsbenutzer müssen vor dem Browser-Aufruf über das Hosting-Panel angelegt werden. Root-Datenbankzugangsdaten werden nicht benötigt.
Konfiguration
Die Browserinstallation schreibt die Konfiguration nach includes/runtime-config.php. Diese Datei enthält sensible Zugangsdaten und darf nicht öffentlich ausgeliefert werden. .htaccess schützt sie zusätzlich; die effektive Webserver-Konfiguration muss nach der Bereitstellung geprüft werden.
config.example.php dokumentiert die unterstützten Konfigurationswerte für manuelle Serverinstallationen.
Struktur
installer.php– einmaliger Browserinstallerindex.php– Anmeldungregister.php– Registrierungdashboard.php– Benutzer- und Adminbereichincludes/bootstrap.php– Konfiguration, Sessions, Datenbank und Portainer-Clientdatabase/schema.sql– initiales Datenbankschemadatabase/migrations/– idempotente Migrationenassets/style.css– Anwendungsstyles.htaccess– Defense-in-Depth-Schutz für Apache
Sicherheit
Produktivbetrieb muss über HTTPS erfolgen. API-Keys, Datenbankpasswörter, Laufzeitkonfigurationen und private Schlüssel gehören nicht in Git. Vor Updates ist ein Datenbankbackup zu erstellen.
Weitere Änderungsinformationen stehen in CHANGELOG.md.