-
0.3.0 Stable
released this
2026-09-15 12:33:34 +00:00 | 8 commits to master since this releaseAdmin-Panel für Aushänge („Werbung") und Alarme – serverseitig, gerätübergreifend.
Admin-Panel & gemeinsamer Zustand
- Neues Admin-Panel unter
/admin(Login + Verwaltung). Die Schulleitung kann
Bilder/PDFs/Textmeldungen als Aushang auf die Aula-Anzeige schalten
(Platzierung links/rechts/vollbild, dauerhaft oder im Intervall, Diashow,
Enddatum) und die Alarme Feueralarm und Amok/Lockdown ein-/ausschalten. - Serverseitiger gemeinsamer Zustand statt Browser-
localStorage: Aushang- und
Alarmzustand liegen im Container (/data/userdata/state.json+media/) und
werden über eine kleine API geteilt (/api/state,/api/aushang,/api/notfall,
/api/upload,/api/login). Dadurch steuert die Schulleitung von einem anderen
Gerät aus, was am Aula-Display erscheint. Zustand übersteht einen Neustart. - Schulname im Kopf über
SCHULNAMEin der Compose einstellbar
(Default „Johannes-Gutenberg-Gymnasium").
Sicherheit
- Echte Anmeldung mit Zugangsdaten aus der
docker-compose.yml
(ADMIN_USER/ADMIN_PASSWORD, alternativADMIN_PASSWORD_HASH= PBKDF2;
Hash erzeugen mitserver.py --hash 'passwort'). Session-Cookie (HttpOnly,
SameSite=Strict), Ablauf überSESSION_HOURS. - Brute-Force-Schutz: Fehlversuche pro IP werden gezählt, ab
LOGIN_MAX_FAILS
greift eine ansteigende Sperre, plus feste Verzögerung; Passwortvergleich in
konstanter Zeit (kein Timing-Oracle für den Benutzernamen). - Textmeldungen werden serverseitig bereinigt (Allowlist): nur harmlose
Formatier-Tags + gefilterte Inline-Styles;script/Event-Handler/iframe/
javascript:-URLs werden entfernt. Kein Skript kann auf die Anzeige gelangen. - Server-Härtung: Socket-Timeout gegen hängende Verbindungen, Aufräumen von
Sessions/Sperr-Einträgen. (Noch kein HTTPS – im LAN Klartext; TLS später per
Reverse-Proxy davor, dann IP-Sperre aufX-Forwarded-Forumstellen.)
Uploads & PDF
- Uploads als Dateien im neuen Volume
./data/vplan-websrv-userdata
(bis 25 MB pro Datei, JPG/PNG/WebP/PDF), über/media/<id>ausgeliefert und
browser-cachebar. - PDFs werden serverseitig in Seiten-PNGs umgewandelt (
poppler-utils/
pdftoppm) – identische Darstellung in jedem Browser (kein Firefox-Toolbar/Zoom),
ermöglicht mehrseitige Aushänge. Im Vollbild werden 2 Seiten nebeneinander
gezeigt und paarweise durchgewechselt; sonst je 1 Seite. - Zuverlässiges Aufräumen: nicht mehr referenzierte Dateien werden entfernt –
auch verwaiste Dateien direkt von der Platte (mit Alters-Schutz für laufende
Uploads) sowie beim Start.
Anzeige
- Neue Aushang-Anzeige neben/über dem Plan; Textmeldungen scrollen bei
Überlänge automatisch durch (wie die Vertretungen). - Diashow-Timing gefixt: im Intervall zählt nur die sichtbare Zeit, dadurch
kommt jede Datei dran (vorher konnte eine genau in die Pause fallen). - Der Plan scrollt nach einem Vollbild-/Intervall-Aushang genau dort weiter, wo
er war (statt oben neu zu starten). - Vollbild-Feinschliff: minimaler Kopf (nur Schule + Uhr; ohne Mittel-Titel,
Trennlinie und „Plan veraltet"), heller Rand statt dunkel, „Aktualisiert" zeigt
die Aushang-Zeit, bei mehreren Seiten steht mittig klein „Aushang x / y". - Am Vertretungsplan selbst ändert sich sonst nichts: ohne veröffentlichten
Aushang und ohne Alarm ist die Anzeige identisch zu 0.2.0.
Alarme
- Feueralarm/Amok werden bewusst über das Admin-Panel geschaltet und kommen
ausschließlich aus dem Server-Zustand – so kann bei Lade-/Verbindungsproblemen
niemals versehentlich ein Alarm erscheinen.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Neues Admin-Panel unter