Interner Projektbericht

Echo-Station

Eine stationäre Such- und Kopierstation für Predigten und andere Audiobeiträge der Gemeinde. Besucher suchen, filtern und kopieren Inhalte am Touchscreen auf einen USB-Stick – ohne technische Vorkenntnisse.

Stand: 15. Juni 2026 Pi auf 2c828d4 · USB-Export MVP abgenommen · 4411 Einträge lokal gecached Andreas Driss

Funktionsübersicht

Überblick über alle Bereiche des Projekts mit aktuellem Status. Grün = fertig, Gelb = teilweise umgesetzt, Rot = noch offen.

📋 Inhaltsliste anzeigen
Fertig
Besucher sehen eine vollständige Liste verfügbarer Audiobeiträge mit Titel, Sprecher, Kategorie und Datum.
🔍 Suche & Filter
Fertig
Suchfeld, Backend-Volltextsuche, Kategorie-Filter und Sortierung sind im Besucher-Frontend aktiv.
🤖 KI-Unterstützung
Geplanter Case
KI ersetzt „Musik hören“ als nächster fachlicher Case: bessere Suche, Vorschläge, Kategorisierung und Admin-Assistenz. Nicht MVP-blockierend; der Besucher-MVP bleibt USB-Export.
💾 USB-Stick kopieren
MVP abgenommen
USB-Export ist grün: echter Stick bereit, Einzel- und Mehrfachkopie, wiederholtes Kopieren mit konfliktfreien Dateinamen sowie externe Datei- und Abspielprüfung sind bestanden.
🔄 Daten-Synchronisation
Fertig
Audiodateien werden aus lokalem Ordner und NAS eingelesen, ausgewertet und in der Datenbank gespeichert. Produktiv verifiziert.
🗄️ NAS als Quelle
Fertig
Die NAS bleibt Quelle der Audio-Daten; der lokale Pi-Katalog und Cache sind produktiv nutzbar. Breite Jahres- und Root-Pfade bleiben ein Betriebs- und Traversal-Thema.
🏷️ Inhaltstypen
Fertig
Predigt, Lied, Bibelarbeit, Zeugnis, Moderation und weitere werden automatisch erkannt und in der Datenbank gespeichert.
🔐 Admin-Bereich
Touch abgenommen
PIN-basierte Admin-Auth ist am echten Kiosk in Betrieb: First-Run-PIN gesetzt, Login geprüft, Statusansicht geöffnet und PIN-Wechsel erfolgreich durchgeführt.
📅 Kalender & Kiosk-Freigabe
Read-only live
Resolver und Statusanzeige laufen am echten Kiosk. Der öffentliche Status bleibt ohne Auth erreichbar; schreibende Kalender- und Override-Endpunkte folgen jetzt geschützt durch die Admin-Session.
🧹 Cache-Verwaltung
Teilweise
Gezielter Cache-Abruf und Bulk-Cache laufen produktiv. Cleanup-Timer, Retention-Regeln und langfristige Betriebsregeln bleiben offen.
🔧 Wartung & Fernzugriff
Teilweise
Fernwartung via Tailscale dokumentiert und teilweise eingerichtet. Deployment-Ablauf für Updates ist klar definiert.
💿 Backup
Fertig
Automatisches Backup der Datenbank per Script und Timer ist eingerichtet. Wiederherstellung nach Fehler ist möglich.

Was das System kann

Übersicht der vorhandenen und geplanten Funktionen in Kurzform.

🗂️
Medienkatalog
Alle Audiodateien werden automatisch eingelesen. Titel, Sprecher, Datum, Dauer und Kategorie werden aus den Datei-Informationen ausgelesen und gespeichert.
Aktiv
🔎
Volltextsuche
Schnelle Suche über Titel und Sprecher. Das Suchfeld nutzt die Backend-Volltextsuche, inklusive On-Screen-Tastatur für den Touchscreen.
Aktiv
📂
Kategorien & Filter
Predigt, Lied, Bibelarbeit, Zeugnis, Moderation, Geschichte, Gedicht, Einleitung, Familienvortrag. Kategoriefilter im Frontend bereits nutzbar.
Aktiv
🤖
KI-Unterstützung
Geplanter Folge-Case für bessere Suche, automatische Vorschläge, Kategorisierungshilfe und spätere Admin-Assistenz. Nicht Teil des abgenommenen USB-Besucher-MVP.
Geplant
📅
Kalender-Zeitsteuerung
Reguläre Gottesdienste steuern, wann der Kiosk freigegeben oder gesperrt ist. Resolver, öffentlicher Status-Endpunkt und Admin-Statusanzeige sind am Pi verifiziert.
Read-only live
🔐
Admin-Auth
Lokales First-Run-Setup für eine 6-stellige PIN, signiertes HttpOnly-Session-Cookie, Rate-Limit und PIN-Wechsel sind implementiert und am Touchscreen erfolgreich geprüft.
Touch abgenommen
📤
USB-Export
Besucher wählen Beiträge aus und kopieren sie auf ihren USB-Stick. Einzelkopie, Mehrfachkopie, Namenskollisionen, externe Datei-/Abspielprüfung und Auswahl-Limit-Fehlerfall sind am echten Pi bestanden.
MVP abgenommen
🔗
NAS-Integration
Die NAS bleibt die Hauptquelle. Der lokale Pi-Katalog umfasst 4411 Einträge; breite Jahres- und Root-Pfade werden weiter vorsichtig behandelt.
Aktiv

Was bisher umgesetzt wurde

Alle abgeschlossenen Arbeitsschritte seit Projektbeginn – chronologisch und sachlich.

Projektstruktur angelegt
Backend, Frontend, Infrastruktur und Dokumentation klar getrennt. Qualitätsregeln eingerichtet (TypeScript, Linting, Tests, Git-Hooks).
Backend aufgebaut
API-Server mit Fehlerbehandlung, Logging und Validierung. Läuft stabil auf dem Raspberry Pi.
Datenbank erstellt
SQLite mit Migrationen für Grundmodell, Volltextsuche, Cache-Felder und Inhaltstypen. Automatisches Backup eingerichtet.
Synchronisation implementiert
Audiodateien aus lokalem Ordner und NAS werden eingelesen, analysiert und in der Datenbank gespeichert. Duplikate werden erkannt.
NAS-Anbindung produktiv verifiziert
Verbindung zur echten NAS auf dem Pi geprüft und der lokale Katalog/Cache produktiv aufgebaut. Breite Jahres- und Root-Pfade bleiben bewusst kein pauschal freigegebener Sync-Pfad.
Inhaltstypen (v1) eingeführt
Fachliche Zuordnung festgelegt und umgesetzt: Predigt, Lied, Bibelarbeit, Zeugnis, Moderation, Geschichte, Gedicht, Einleitung, Familienvortrag. Mit Tests abgesichert.
Frontend-Basis umgesetzt
Inhaltsliste mit Suchfeld, On-Screen-Tastatur, Kategoriefilter, Sortierung und Kategorieanzeige. Filter-Verhalten stabilisiert und verifiziert.
Kiosk-Betrieb eingerichtet
Raspberry Pi startet automatisch in den Vollbild-Kiosk-Modus. Systemd-Konfigurationen versioniert und dokumentiert.
Deployment-Ablauf definiert
Klarer Prozess für Updates: Entwicklung auf Mac → Git Push → Pull und Build auf dem Pi → Neustart. Übergabedokumentation gepflegt.
Projektdokumentation aufgebaut
Backlog, Architektur, Handover, NAS-Analyse und Mapping-Entscheidungen als eigene Dokumente gepflegt.
USB-Export-Flow umgesetzt
Backend-Job-API, Mehrfachauswahl, Speicherprüfung und Fortschritt per Polling im Repo umgesetzt. Musik hören am Kiosk ist bewusst aus dem MVP gestrichen.
USB-Auswahl-Bug behoben
Das USB-Status-Polling setzte die Beitragsauswahl wiederholt zurück, solange kein Stick steckte. Behoben per Flanken-Logik: Die Auswahl wird nur noch beim tatsächlichen Abziehen des Sticks geleert. Build, Lint und Format-Check sind grün.
Cache-Abruf erweitert (Backend)
Logik zum gezielten Abrufen und zum Bulk-Cachen aller Remote-Einträge ergänzt, deployed und mit Tests abgesichert.
Lokalen Katalog aufgebaut
Der produktive Katalog enthält 4411 aktive Einträge, lokal gecached, mit ca. 51.94 GB Cache-Daten.
Kiosk-Freigabe read-only live
Resolver, öffentlicher Status-Endpunkt und Admin-Statusanzeige sind auf dem echten Kiosk deployt. Die Zeitzonenanzeige wurde mit 2026-06-14T09:50:00+02:00 als deutscher Ortszeit bestätigt.
Admin-Auth C2 abgenommen
First-Run-PIN-Setup, Login, Statusansicht und PIN-Wechsel sind am echten Kiosk-Touchscreen erfolgreich durchgeführt. Session-Cookie, Rate-Limit und Migration 008 sind auf dem Pi aktiv.
USB-Export MVP abgenommen
Echter Stick am Pi erkannt, Einzelkopie und Mehrfachkopie bestanden, wiederholtes Kopieren erzeugt konfliktfreie Dateinamen, MP3-Dateien sind extern vorhanden und abspielbar. Der Auswahl-Limit-Fehlerfall ist geprüft; die Grenze liegt nun bei 700 Einträgen und die Fehlermeldung ist per OK-Button schließbar.

Was noch aussteht

Punkte, die für einen vollen Besucherbetrieb noch fehlen, geordnet nach Priorität.

~
Touchscreen-UX final abnehmen
Der produktive Besucher-Flow ist sichtbar und der normale USB-Export ist abgenommen. Offen bleibt Feinschliff am Touchscreen: Lesbarkeit, Abstände und klare Rückmeldungen für robuste Sonderfälle.
~
USB-Robustheit und Fehlerfälle testen
Nicht MVP-blockierend: Abziehen während des Kopiervorgangs, volle oder sehr langsame Sticks, nicht beschreibbare Sticks und die zugehörigen Touchscreen-Fehlermeldungen.
~
Sync- und Cache-Betrieb verstetigen
Der lokale Katalog/Cache ist produktiv nutzbar. Für künftige NAS-Erweiterungen braucht es eine klare Betriebsroutine mit Backup, Dry-Run, Sync, Cache-Aufbau und Abnahme.
~
NAS-Root bewusst ausklammern
Breite Jahres- und Root-Pfade bleiben wegen fremder Ordner, Laufzeit und Traversal-Risiko nicht als gelöst oder pauschal produktiv freigegeben.
~
Kalender-Zeitsteuerung schreibend machen
Read-only-Status und Zeitzonenanzeige sind live. Als Nächstes folgen geschützte Admin-Schreibpfade für manuellen Override, Sondertermine und Verwaltung.
~
Cache-Cleanup automatisieren
Endpunkt vorhanden, automatischer Timer fehlt noch. Nötig, damit der Speicher auf dem Pi langfristig nicht voll läuft.
~
Datenmodell schärfen
Ursprünglicher NAS-Begriff, interner Typ, Herkunft und Verfügbarkeit sauber trennen. Regeln für unklare Begriffe wie „Gebet" und „Abschluss" festlegen.
KI-Case konkret schneiden
Musik hören wird nicht weiter als MVP-Ziel verfolgt. Stattdessen werden konkrete KI-Anwendungsfälle gesammelt: Suche, Vorschläge, Kategorisierung, Dublettenhinweise und Admin-Hilfe.
Admin-Schreibpfad fachlich schneiden
Admin-Login und PIN-Wechsel sind am Touchscreen erledigt. Offen ist der erste geschützte Schreibpfad, voraussichtlich manueller Kiosk-Override oder Kalender-Sondertermin.
Betriebsregeln finalisieren
Langfristige Strategie für Speicher, Archiv, On-demand-Abruf von der NAS, Retention und Wiederaufbau des lokalen Caches noch nicht finalisiert.

Nächste Schritte

Phasenbasierter Plan ohne feste Termine. Reihenfolge orientiert sich am Nutzwert für Besucher und Betrieb.

Phase 1
Touchscreen-UX final abnehmen
Normaler USB-Besucherfluss ist abgenommen. Jetzt Lesbarkeit, Abstände und Rückmeldungen für robuste Sonderfälle am Touchscreen prüfen.
Kiosk sichtbar Touch-UX
Phase 2
USB-Robustheit für Sonderfälle abnehmen
USB-Export ist MVP-abgenommen. Offen bleiben nur Sonderfälle: Stick während Kopie entfernen, volle oder sehr langsame Sticks, nicht beschreibbare Sticks und die dazugehörigen Fehlermeldungen.
USB-MVP Robustheit
Phase 3
Admin-geschützte Kalenderverwaltung bauen
Read-only-Freigabe läuft, Admin-Auth ist am Touchscreen abgenommen. Nächster Schritt ist der erste schreibende Admin-Pfad: manueller Override, danach Sondertermine und Regeln.
Kalender Admin-Session
Phase 4
Retention und Cleanup regeln
Der lokale Cache umfasst rund 52 GB. Cleanup-Timer, Retention-Regeln und Wiederaufbau aus der NAS betrieblich festlegen.
Cache Retention
Phase 5
NAS-Betrieb verstetigen
Groben Betriebsstatus halten, ohne breite Jahres- oder Root-Pfade als gelöst darzustellen: Backup, Dry-Run, Sync, Cache-Aufbau, Abnahme und Rollback dokumentieren.
NAS Betrieb
Phase 6
Datenmodell festigen
Rohen NAS-Begriff separat speichern. Herkunft, Cache und Verfügbarkeit sauber unterscheiden. Grundlage für langfristige Korrekturen legen.
Datenmodell raw_category
Phase 7
Betrieb, Wartung & Langzeit
Admin-Funktionen auf der vorhandenen PIN-Session ausbauen. Cache-Cleanup aktivieren, Backup- und Restore-Ablauf absichern und Betriebscheckliste fertigstellen.
Admin Wartung
Phase 8
KI-Unterstützung als Folge-Case schneiden
Offline-taugliche, kontrollierbare KI-Anwendungsfälle definieren. Fokus: bessere Suche, Vorschläge, Kategorisierungshilfe und Admin-Unterstützung statt Musik hören.
KI Suche

Offene Fragen & Risiken

Bekannte Unsicherheiten, die den weiteren Verlauf beeinflussen können.

⚠️
Breite NAS-Pfade
Breite Jahres- und Root-Pfade bleiben wegen fremder Ordner, Laufzeit und Traversal-Last ein bewusst ausgeklammertes Betriebsrisiko.
⚠️
Datenqualität NAS
Bisherige Stichproben sind hilfreich strukturiert. Ältere Dateien können abweichen. „Unbekannt" bleibt nötig als sicherer Fallback für nicht erkannte Begriffe.
⚠️
USB-Robustheit
Der USB-MVP ist mit echtem Stick abgenommen. Zu langsame, volle oder nicht beschreibbare Sticks sowie Abziehen während des Kopiervorgangs sind weiterhin offene Robustheitstests.
⚠️
Besucherbedienung
Der normale Besucher-Export ist am Kiosk abgenommen. Für Sonderfälle bleiben Lesbarkeit, Rückmeldungen und Fehlertexte am Touchscreen zu prüfen.
⚠️
Kalender-Regeln
Sperr- und Freigabezeiten brauchen klare Prioritäten, konsequent geschützte Schreibpfade und Tests für Sommer-/Winterzeit, Feiertage und Sondertermine.
⚠️
Admin-Schreibpfade
Ersteinrichtung, Login und PIN-Wechsel sind erledigt. Das Risiko liegt jetzt in konsequent geschützten Schreibpfaden für Override, Sondertermine und Verwaltung.
⚠️
KI-Abgrenzung
KI darf den lokalen Offline-Betrieb, Datenschutz und die Pi-Ressourcen nicht gefährden. Der Case muss eng geschnitten und fachlich überprüfbar bleiben.
⚠️
Speicher und Retention
Der lokale Cache liegt bei ca. 51.94 GB. Ohne klare Cleanup- und Retention-Regeln kann der Pi-Speicher langfristig zum Betriebsrisiko werden.

Nicht Teil des Projekts

Folgende Punkte sind kein Ziel – jetzt und auf absehbare Zeit nicht.

Online-Streaming Inhalte bleiben lokal. Kein Cloud-Zugriff, kein öffentlicher Stream.
Benutzerkonten Für einen lokalen Kiosk nicht nötig. Keine Logins für Besucher.
Cloud-Synchronisation Die NAS bleibt die einzige Quelle. Kein Sync mit externen Diensten.
Mobile App Keine separate App. Alles läuft am stationären Kiosk-Touchscreen.
Musik hören am Kiosk Direktes Abspielen, Player und Streaming-Endpunkte sind aus dem MVP gestrichen.
Video-Inhalte Ausschließlich Audio. Keine Video-Dateien oder -Streams geplant.