score

Betriebsvarianten

Wie score betrieben werden kann – von einem Server in der Schule bis zum hochverfügbaren Landesbetrieb –, mit Vergleich und Richtwerten zu den Kosten.

score wird als ein Satz Container-Images ausgeliefert: die Oberfläche score-web und der Fachdienst score-api (mit eingebauter Regel-Engine und PDF-Erzeugung). Dazu kommen PostgreSQL, Keycloak für die Anmeldung und ein Speicher für Sicherungen. Nichts davon ist an einen Anbieter gebunden; ein Umzug zwischen Rechenzentren ist Konfiguration, kein Umbau.

Drei Profile aus demselben Artefakt

Klein Mittel Land
Größe eine Schule, bis ca. 1.000 Konten Schulträger mit einigen Dutzend Schulen z. B. M-V: ca. 620 Schulen, 450.000 Konten, 3.000–5.000 gleichzeitig
Laufzeit ein Server, alle Dienste darauf mehrere Instanzen hinter einem Lastverteiler horizontal skaliert, Hintergrundaufgaben getrennt, Lese-Replikat für die Einsicht
Anmeldung lokale Konten Konten des Trägers oder lokal Landes-Identitätsmanagement
Stammdaten Eingabe, Import als Datei Import aus der Verwaltungssoftware Anbindung der Landes-Schulverwaltung
Schlüssel auf dem Server Schlüsseldienst (z. B. OpenBao) KMS oder HSM des Landes
Fokus
Zielbild Landesprofil: horizontal skaliert, Engpass Datenbank
Zielbild Landesprofil: horizontal skaliert, Engpass DatenbankArchitekturdiagramm mit 10 Komponenten und 10 Verbindungen in 2 Grenzen. Rechenzentrum in Deutschland: Reverse Proxy, LB, score-web × n, score-api × n, score-api × m, Keycloak, Datenzone. Datenzone (in Rechenzentrum in Deutschland): PostgreSQL, Lese-Replikat, S3. Hauptweg: 450.000 Konten → Reverse Proxy, LB → score-web × n → score-api × n → PostgreSQL. 450.000 Konten (Person): verbunden mit Reverse Proxy, LB (HTTPS). score-api × m (Dienst): verbunden mit PostgreSQL (Jobs, SKIP LOCKED) und S3 (Zeugnis-PDF, Archiv). Reverse Proxy, LB (Sicherheit): verbunden mit score-web × n (verteilt). S3 (Speicher): keine ausgehende Verbindung. score-web × n (Dienst): verbunden mit score-api × n (/v1). score-api × n (Dienst): verbunden mit PostgreSQL (schreibt), Lese-Replikat (liest) und Keycloak (OIDC). Keycloak (Sicherheit): verbunden mit Landes-IdP (brokert). PostgreSQL (Datenbank): verbunden mit Lese-Replikat (repliziert). Lese-Replikat (Datenbank): keine ausgehende Verbindung. Landes-IdP (externes System): keine ausgehende Verbindung.Rechenzentrum in DeutschlandDatenzone450.000 Konten → Reverse Proxy, LB: HTTPSReverse Proxy, LB → score-web × n: verteiltscore-web × n → score-api × n: /v1score-api × n → PostgreSQL: schreibtscore-api × n → Lese-Replikat: liestPostgreSQL → Lese-Replikat: repliziertscore-api × m → PostgreSQL: Jobs, SKIP LOCKEDscore-api × m → S3: Zeugnis-PDF, Archivscore-api × n → Keycloak: OIDCKeycloak → Landes-IdP: brokertHTTPSverteilt/v1schreibtliestrepliziertJobs, SKIP LOCKEDZeugnis-PDF, ArchivOIDCbrokert450.000 Konten – 3.000–5.000 gleichzeitig450.000 Konten3.000–5.000 gleichzeitigReverse Proxy, LB – TLS 1.3, WAFReverse Proxy, LBTLS 1.3, WAFscore-web × nscore-web × nscore-api × n – Modus apiscore-api × nModus apiscore-api × m – Modus workerscore-api × mModus workerKeycloakKeycloakPostgreSQL – Primär, vertikal skaliertPostgreSQLPrimär, vertikal skaliertLese-Replikat – Einsicht Schüler, ElternLese-ReplikatEinsicht Schüler, ElternS3 – Object LockS3Object LockLandes-IdPLandes-IdP

Quelle: score, Zielbild Landesprofil (Lese-Replikat und S3 noch nicht gebaut)

Diagrammdaten anzeigen
Daten zu Zielbild Landesprofil: horizontal skaliert, Engpass Datenbank
KomponenteArtGrenzeVerbunden mit
450.000 KontenPersonReverse Proxy, LB (HTTPS)
score-api × mDienstRechenzentrum in DeutschlandPostgreSQL (Jobs, SKIP LOCKED), S3 (Zeugnis-PDF, Archiv)
Reverse Proxy, LBSicherheitRechenzentrum in Deutschlandscore-web × n (verteilt)
S3SpeicherRechenzentrum in Deutschland › Datenzone
score-web × nDienstRechenzentrum in Deutschlandscore-api × n (/v1)
score-api × nDienstRechenzentrum in DeutschlandPostgreSQL (schreibt), Lese-Replikat (liest), Keycloak (OIDC)
KeycloakSicherheitRechenzentrum in DeutschlandLandes-IdP (brokert)
PostgreSQLDatenbankRechenzentrum in Deutschland › DatenzoneLese-Replikat (repliziert)
Lese-ReplikatDatenbankRechenzentrum in Deutschland › Datenzone
Landes-IdPexternes System

Lokaler Betrieb ab einer Schule

score läuft schon für eine einzelne Schule – etwa eine Privatschule oder eine Schule, deren Träger die Daten im eigenen Haus halten will. Alle Dienste laufen dann auf einem Server; es sind dieselben Images wie im Landesbetrieb, ein Sonderbau entfällt.

Fokus
Betrieb an einer Schule: alles auf einem Server
Betrieb an einer Schule: alles auf einem ServerArchitekturdiagramm mit 8 Komponenten und 9 Verbindungen in 1 Grenze. Server der Schule oder des Trägers: Caddy, score-web, score-api, Keycloak, PostgreSQL. Hauptweg: Lehrkräfte, Schüler, Eltern → Caddy → score-web → score-api → PostgreSQL. Schulverwaltung (externes System): verbunden mit score-api (CSV, JSON). Lehrkräfte, Schüler, Eltern (Person): verbunden mit Caddy (HTTPS). Caddy (Sicherheit): verbunden mit score-web und Keycloak (Anmeldung). score-web (Dienst): verbunden mit score-api (/v1). score-api (Dienst): verbunden mit Keycloak (OIDC) und PostgreSQL. Keycloak (Sicherheit): verbunden mit PostgreSQL. PostgreSQL (Datenbank): verbunden mit Sicherung (täglich). Sicherung (Speicher): keine ausgehende Verbindung.Server der Schule oder des TrägersLehrkräfte, Schüler, Eltern → Caddy: HTTPSCaddy → score-webCaddy → Keycloak: Anmeldungscore-web → score-api: /v1score-api → Keycloak: OIDCscore-api → PostgreSQLKeycloak → PostgreSQLPostgreSQL → Sicherung: täglichSchulverwaltung → score-api: CSV, JSONHTTPSAnmeldung/v1OIDCtäglichCSV, JSONLehrkräfte, Schüler, Eltern – BrowserLehrkräfte, Schüler,ElternBrowserCaddy – TLS-Zertifikate automatischCaddyTLS-Zertifikate automatischscore-web – Oberflächescore-webOberflächescore-api – Modus all: Fachdienst und Hintergrundaufgabenscore-apiModus all: Fachdienst undHintergrundaufgabenKeycloak – lokale KontenKeycloaklokale KontenPostgreSQL – Daten, Zeugnisse, ProtokollPostgreSQLDaten, Zeugnisse, ProtokollSicherung – extern, Verantwortung der SchuleSicherungextern, Verantwortung derSchuleSchulverwaltung – optional: Import als DateiSchulverwaltungoptional: Import als Datei

Quelle: score, Ein-Server-Betrieb mit Docker Compose

Diagrammdaten anzeigen
Daten zu Betrieb an einer Schule: alles auf einem Server
KomponenteArtGrenzeVerbunden mit
Schulverwaltungexternes Systemscore-api (CSV, JSON)
Lehrkräfte, Schüler, ElternPersonCaddy (HTTPS)
CaddySicherheitServer der Schule oder des Trägersscore-web, Keycloak (Anmeldung)
score-webDienstServer der Schule oder des Trägersscore-api (/v1)
score-apiDienstServer der Schule oder des TrägersKeycloak (OIDC), PostgreSQL
KeycloakSicherheitServer der Schule oder des TrägersPostgreSQL
PostgreSQLDatenbankServer der Schule oder des TrägersSicherung (täglich)
SicherungSpeicher
Bedarf
Server 4 vCPU, 8 bis 16 GB Arbeitsspeicher, 100 GB SSD, Linux mit Docker; eigene Hardware oder gemieteter Server in Deutschland
Adresse eine Domain mit automatischem Zertifikat, oder Betrieb nur im Schulnetz mit Zertifikat aus eigener Zertifizierungsstelle
Anmeldung lokale Konten; ein Identitätsanbieter des Trägers lässt sich über Keycloak anbinden
Stammdaten Import aus der Schulverwaltung als CSV oder JSON, mit Probelauf
Regeln das Regelpaket des Landes der Schule, je Klasse wählbar
Aufwand im Betrieb Betriebssystem-Updates, Kopie der Sicherungen außer Haus, neue score-Versionen einspielen

Die Daten bleiben vollständig bei der Schule bzw. ihrem Träger, der damit auch Verantwortlicher im Sinne des Datenschutzes ist. Mandantentrennung, Protokoll, Aufbewahrungsfristen und Ausstieg funktionieren genau wie im Landesbetrieb.

Für den Betrieb bringt score ein Bedienskript mit:

Befehl Wirkung
einrichten Geheimnisse erzeugen, Images bauen, alle Dienste starten
einrichtung Schule mit Ort und Schulstatus anlegen, Halbjahre eines Schuljahres dazu
import Stammdaten aus CSV oder JSON prüfen und übernehmen
sichern, sicherungen, wiederherstellen Sicherung sofort, vorhandene Stände, Stand zurückspielen; täglich läuft die Sicherung von selbst
update, zurueck neue Version einspielen (vorher gesichert), bei Bedarf zurück auf den Stand davor

Eine Privatschule kann eigene Zeugnisvorlagen hochladen; score prüft sie beim Hochladen und setzt den Schulstatus („Staatlich anerkannte Ersatzschule“) in den Zeugniskopf. Lernen Schüler an einer Partnerschule, die auf einer anderen Installation läuft, gehen ihre Noten zum Notenschluss als Datei mit Prüfsumme hin und her. Den vollständigen Stand zeigt der Kriterienkatalog.

Topologie: gemeinsam oder je Land

  • Gemeinsame Instanz für mehrere Auftraggeber, getrennt durch die Datenbank. Günstiger im Betrieb.
  • Eigene Instanz je Land mit eigener Datenbank, eigenen Schlüsseln und eigenem Anmeldebereich. Vollständige Trennung von anderen Auftraggebern.

Beides entsteht aus denselben Images.

Betriebsmodelle im Vergleich

A: Landesrechenzentrum B: Deutsche Cloud mit C5 C: Deutscher Hoster, eigener Betrieb D: Dezentral bei Trägern
Beispiel DVZ M-V STACKIT, IONOS Hetzner Server des Schulträgers
Betrieb durch Landes-RZ Managed-Betreiber mit Testat Land oder Dienstleister Träger oder dessen IT-Dienstleister
Datenhoheit beim Land Vertrag, deutsche Anbieter Vertrag, deutscher Anbieter beim Träger
Nachweise nach Landesvorgaben C5 Typ 2, ISO 27001 ISO 27001, kein C5 je Träger
Skalierung Landesprofil abhängig von der Plattform des RZ verwaltete Datenbank und Kubernetes Datenbank selbst betreiben nicht vorgesehen
Eignung Landesverfahren, wenn das RZ Container und PostgreSQL bietet schnellster Weg zum Landesbetrieb mit Testat kleinere Träger, Testbetrieb einzelne Schulen, Privatschulen

Schüler mit Unterricht an zwei Schulen auf verschiedenen Instanzen (etwa Privatschule dezentral, Partnerschule im Landesbetrieb) bekommen ihre Noten zum Notenschluss als schreibgeschützten Schnappschuss, nicht laufend abgeglichen.

Richtwerte zu den Kosten

Richtwerte Infrastrukturkosten in Euro je Monat, netto, ohne Personal
Richtwerte Infrastrukturkosten in Euro je Monat, netto, ohne PersonalSpannweitendiagramm mit 3 Kategorien, jeweils eine Spanne vom unteren zum oberen Wert mit einem mittleren Wert. Niedrigster unterer Wert: 60 (Eine Schule). Höchster oberer Wert: 15.000 (Land).101001.00010.000Eine Schule: 120 (60 bis 200)Eine SchuleSchulträger: 1.000 (700 bis 1.500)SchulträgerLand: 9.000 (5.000 bis 15.000)Land
Richtwerte Infrastrukturkosten in Euro je Monat, netto, ohne PersonalSpannweitendiagramm mit 3 Kategorien, jeweils eine Spanne vom unteren zum oberen Wert mit einem mittleren Wert. Niedrigster unterer Wert: 60 (Eine Schule). Höchster oberer Wert: 15.000 (Land).101001.00010.000Eine Schule: 120 (60 bis 200)Eine SchuleSchulträger: 1.000 (700 bis 1.500)SchulträgerLand: 9.000 (5.000 bis 15.000)Land

Quelle: Schätzung aus Listenpreisen von Hetzner, STACKIT und IONOS (Stand Oktober 2026); Betriebsleistung, Lizenzen für Fremdsysteme und Personal nicht enthalten

Diagrammdaten anzeigen
Daten zu Richtwerte Infrastrukturkosten in Euro je Monat, netto, ohne Personal
KategorieUnterer WertMittlerer WertOberer Wert
Eine Schule60120200
Schulträger7001.0001.500
Land5.0009.00015.000

Die Spannen sind Schätzungen für die reine Infrastruktur, netto, aus öffentlichen Listenpreisen deutscher Anbieter im Oktober 2026. Die Achse ist logarithmisch, damit alle drei Profile lesbar bleiben.

Profil Richtwert je Monat Annahme
Eine Schule 60 bis 200 Euro ein Server mit 4 vCPU und 16 GB, Sicherung, Domain
Schulträger 700 bis 1.500 Euro zwei bis drei Anwendungsserver, verwaltetes PostgreSQL mit drei Knoten, Speicher für Sicherungen, Lastverteiler
Land 5.000 bis 15.000 Euro Kubernetes mit 8 bis 12 Knoten, PostgreSQL hochverfügbar mit 16 vCPU und Lese-Replikat, Keycloak im Cluster, Speicher mit Object Lock, Protokollablage, Schutz vor Angriffen (WAF, DDoS)

Nicht enthalten sind Personal und Betriebsleistung (Bereitschaft rund um die Uhr, Updates, Notfallübungen, Testate), Lizenzen von Fremdsystemen und einmalige Aufwände für Anbindung und Einführung. Im Landesprofil sind diese Posten in der Regel größer als die Infrastruktur. Vor einer Entscheidung sind die Preise beim Anbieter verbindlich anzufragen; Hetzner hat seine Preise 2026 zweimal deutlich erhöht.

Quellen der Listenpreise: STACKIT PostgreSQL Flex (Preisliste je Stunde), IONOS Cloud (Managed Kubernetes und Datenbank), Hetzner Cloud (Preisanpassung 15.06.2026).

Aufgabenteilung

score liefert die Software: versionierte Images, Datenbankmigrationen, Regelpakete, Betriebsdokumentation und Unterstützung in der dritten Ebene. Den Betrieb mit Testat, Bereitschaft und Notfallmanagement übernimmt je nach Modell das Landes-RZ, ein testierter Betreiber oder der Träger. Die fachliche Administration (Regelpakete, Rollen, Vorlagen) bleibt beim Land und ist vom technischen Betrieb getrennt.

Updates und Verfügbarkeit

  • Neue Versionen gehen erst in eine Testinstanz, in die Produktion nach Freigabe des Landes.
  • Migrationen sind abwärtskompatibel; Updates laufen ohne Ausfall, ein Rückweg ist in unter einer Stunde möglich.
  • Sicherheitsupdates sind ein vorab genehmigter Standardfall und binnen drei Stunden eingespielt.
  • In konfigurierten Zeugnisphasen gibt es keine Wartung.
  • Sicherungen mit Wiederherstellung auf einen beliebigen Zeitpunkt, Ziel höchstens 15 Minuten Datenverlust, monatlich automatisch getestet.