Schuelerapp Docker-Komplettpaket (Compose-Steuerdatei)
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Pablo1732 80991997ce Version 0.3.5
- vplan-webserver 0.4.0: Uebersicht am Rand, Lehrer-Kuerzel-Verwaltung
  mit Import/Export, kompaktere Abstaende.
- vplan-parser bleibt 0.2.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 13:04:51 +01:00
.gitignore Version 0.1.0 2026-09-15 14:35:57 +02:00
docker-compose.yml Version 0.3.5 2026-11-09 13:04:51 +01:00
README.md Version 0.3.5 2026-11-09 13:04:51 +01:00

schuelerapp-fullstack

Vereint die zwei VPlan-Container in einer docker-compose.yml:

  1. vplan-parser -- laedt den Schul-Vertretungsplan herunter und wandelt ihn in vertretungen.json um.
  2. vplan-webserver -- macht daraus eine Webseite mit drei Ansichten sowie eine Aushang-/Alarm-Verwaltung unter /admin/.

Beide teilen sich ./data/json: der Parser schreibt, der WebServer liest (nur lesend). Ein docker compose up -d startet die komplette Kette.

  vplan-parser --schreibt--> ./data/json/vertretungen.json --liest--> vplan-web --> http://<server>:8080/
Bestandteil Version
FullStack (dieses Paket) 0.3.5
vplan-parser 0.2.0
vplan-webserver 0.4.0

Setup / Installation

1. Docker vorhanden?

docker version

2. Bei der Registry anmelden (einmalig)

docker login git.pablo1732.de

3. Einstellungen anpassen

In der docker-compose.yml mindestens die Serveradresse setzen (Service vplan-parser):

DOWNLOAD_URL: "http://192.168.2.11"   # <- IP/Adresse deines Vertretungsplan-Servers

Und im Service vplan-web ein echtes Passwort fuers Admin-Panel setzen (sonst ist der Login deaktiviert, mit bitte-aendern gesperrt):

ADMIN_PASSWORD: "bitte-aendern"   # <- eigenes Passwort statt des Platzhalters

4. Starten

docker compose pull
docker compose up -d

Anzeige unter http://<server>:8080/ (lokal: localhost).

Kontrolle: docker compose logs -f (mit Strg+C wieder raus).

Bedienung / Anpassung

docker compose up -d      # startet beide im Hintergrund
docker compose logs -f    # Live-Logs beider Container
docker compose down       # stoppt und entfernt beide Container
docker compose restart    # beide neu starten

Nur einen Container ansprechen? Namen anhaengen, z.B. docker compose logs -f vplan-parser.

Einstellungen

Details zu allen Variablen: siehe README der jeweiligen Einzel-Repos (vplan-parser, vplan-webserver).

Einstellung Standard Bedeutung
INTERVAL_SECONDS 30 Sekunden zwischen zwei Parser-Durchlaeufen.
DOWNLOAD_URL http://192.168.2.11 IP/Webadresse des Vertretungsplan-Servers.
POLL_SECONDS 20 Sekunden zwischen zwei Pruefungen auf neue vertretungen.json.
ADMIN_PASSWORD bitte-aendern Passwort fuers Admin-Panel. Leer = Login deaktiviert. bitte-aendern = Login gesperrt.
LOG_LEVEL warning Log des WebServers: debug = jede Anfrage · info = + Logins/Aushaenge · warning = Alarme, Fehlversuche · error = nur Fehler.

Die drei Ansichten

  • /schueler/ -- gruppiert nach Klassen/Jahrgangsstufen.
  • /lehrer_sort_stunden/ -- gruppiert nach Unterrichtsstunde.
  • /lehrer_sort_lehrkraft/ -- gruppiert nach Lehrkraft.

Aushang-Verwaltung (Admin-Panel)

Unter http://<server>:8080/admin/ meldet sich die Schulleitung an und kann Aushaenge (Bilder/PDFs/Textmeldungen) schalten, Feueralarm/Amok ausloesen, Anzeige einstellen (Schrift, Tempo, Uebersicht am Rand) und Lehrer-Kuerzel zuordnen. Details: siehe README von vplan-webserver.

Keine/veraltete Daten in der Anzeige?

  • "Keine Plandaten geladen": Der WebServer findet keine vertretungen.json. Laeuft der Parser? (docker compose logs -f vplan-parser)
  • "Plan veraltet": Die JSON enthaelt nur vergangene Tage -- normal, wenn gerade kein aktueller Plan vorliegt.