openpaw-memory-server

Website-Struktur

Das Projekt ist für eine einfache Website plus unabhängige Memory-API vorbereitet.

Routen

Die Website und die API verwenden getrennte Authentifizierung:

Website-Logins laufen serverseitig standardmäßig nach 60 Minuten ohne Aktivität und unabhängig davon spätestens nach 12 Stunden ab. Das schützt auch dann, wenn ein Browser wie Firefox Session-Cookies nach einem Neustart wiederherstellt. Die Werte können unter site.session_idle_seconds und site.session_absolute_seconds angepasst werden. Nach einem Ablauf führt der nächste Aufruf eines geschützten Bereichs zurück zur Startseite.

Login vorbereiten

In private/config.php müssen unter site ein Benutzername und ein Passwort-Hash gesetzt werden. Den Hash erzeugt PHP so:

php -r 'echo password_hash("REPLACE_WITH_PASSWORD", PASSWORD_DEFAULT), PHP_EOL;'

Die Beispielconfig enthält nur Platzhalter. Keine echten Zugangsdaten ins Repo schreiben.

Chatbereich

Der Chat unter /chat nutzt die Website-Session und greift serverseitig auf die Chat-Tabellen in MariaDB zu. Der API-Token wird dabei nicht an den Browser ausgegeben. Der zuletzt geöffnete Thread wird in der Website-Session gemerkt und beim nächsten Aufruf von /chat wieder angezeigt. Die eigentliche Historie liegt dauerhaft in MariaDB und bleibt deshalb auch nach dem Logout erhalten.

Die erste Ausbaustufe bietet:

Design

Das Website-HTML/CSS liegt in:

Das Design kann hauptsächlich über site.css und die Render-Funktionen in public/index.php umgesetzt werden, ohne die API unter public/api/ zu ändern.