Files
pnpaas-adm/README.md
T

2.8 KiB
Raw Permalink Blame History

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, curl und mbstring
  • HTTPS im Produktivbetrieb
  • eine bereits angelegte Datenbank und ein eingeschränkter Datenbankbenutzer

Browserinstallation ohne Shellzugriff

  1. Alle Dateien dieses Repositorys in das gewünschte Webverzeichnis hochladen.
  2. https://example.org/installer.php öffnen.
  3. Bei einer Installation in einem Unterverzeichnis die entsprechende URL verwenden, zum Beispiel https://example.org/pnpaas/installer.php.
  4. Datenbank-, Administrator-, Portainer- und Rechtstextdaten eingeben.
  5. Der Installer importiert Schema und Migrationen und erstellt die geschützte Laufzeitkonfiguration.
  6. Nach erfolgreicher Einrichtung löscht sich installer.php selbst oder wird durch .install-complete gesperrt.

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 Browserinstaller
  • index.php Anmeldung
  • register.php Registrierung
  • dashboard.php Benutzer- und Adminbereich
  • includes/bootstrap.php Konfiguration, Sessions, Datenbank und Portainer-Client
  • database/schema.sql initiales Datenbankschema
  • database/migrations/ idempotente Migrationen
  • assets/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.