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: 11. Juni 2026 Pi auf dcc6ab1 · USB-Kern-Test bestanden · 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
Kern verifiziert
USB-Export ist am echten Pi mit realem Stick verifiziert: Einzel- und Mehrfachkopie liefen durch, MP3-Dateien und Dateinamen wurden extern geprüft. Offen bleiben Robustheitstests.
🔄 Daten-Synchronisation
Fertig
Audiodateien werden aus lokalem Ordner und NAS eingelesen, ausgewertet und in der Datenbank gespeichert. Produktiv verifiziert.
🗄️ NAS als Quelle
Fertig
Die Jahressegmente 2026 und 2025 wurden produktiv synchronisiert und vollständig in den lokalen Cache geladen. Der breite Root-Pfad /mnt/echo-nas bleibt bewusst nicht freigegeben.
🏷️ Inhaltstypen
Fertig
Predigt, Lied, Bibelarbeit, Zeugnis, Moderation und weitere werden automatisch erkannt und in der Datenbank gespeichert.
🔐 Admin-Bereich
Deploy verifiziert
PIN-basierte Admin-Auth mit First-Run-Setup ist auf dem Pi deployt. Backend-Smoke, Session-Cookie und Migration 008 sind verifiziert; offen bleibt die Touch-Abnahme der Ersteinrichtung und des PIN-Wechsels.
📅 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. Der Umfang wird erst nach dem USB-MVP geschnitten.
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 auf dem Pi backend-seitig abgenommen.
Touch-Abnahme offen
📤
USB-Export
Besucher wählen Beiträge aus und kopieren sie auf ihren USB-Stick. Mehrfachauswahl, Speicherprüfung und Fortschritt sind am echten Pi mit Einzel- und Mehrfachkopie erfolgreich getestet.
Kern verifiziert
🔗
NAS-Integration
Die NAS bleibt die Hauptquelle. 2026 und 2025 sind segmentweise synchronisiert; 4411 Aufnahmen liegen lokal im Pi-Cache.
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 produktiv verifiziert
Verbindung zur echten NAS auf dem Pi geprüft. Erst ein enger Unterordner, danach die Jahressegmente 2026 und 2025 segmentweise synchronisiert.
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.
Clean Catalog 2025/2026 aufgebaut
Pi läuft auf Commit 3775841. Der produktive Katalog enthält 4411 aktive Einträge, alle 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 deployt
Pi läuft auf Commit dcc6ab1 mit First-Run-PIN-Setup, Session-Cookie, Rate-Limit, PIN-Wechsel und Migration 008. Backend-Smoke und Services sind grün; die erste PIN wird bewusst erst am Kiosk-Touch gesetzt.
USB-Kern-Smoke-Test bestanden
Echter Stick am Pi erkannt, eine und mehrere Aufnahmen kopiert, MP3-Dateien an einem anderen Rechner geprüft und Dateinamen auch bei mehrfacher Kopie bestätigt.

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 nutzbar. Offen bleibt die Bedienprobe am Touchscreen: Lesbarkeit, Abstände, Erfolgsmeldung nach Kopie und Fehlermeldungen nachschärfen.
~
USB-Robustheit und Fehlerfälle testen
Der Kernfluss ist mit echtem Stick bestanden. Offen bleiben Abziehen während des Kopiervorgangs, volle/langsame oder nicht beschreibbare Sticks und die zugehörigen Touchscreen-Fehlermeldungen.
~
Sync- und Cache-Betrieb verstetigen
Jahressegmente 2025 und 2026 sind erfolgreich durchgelaufen. Für künftige Segmente braucht es eine klare Betriebsroutine mit Backup, Dry-Run, Sync, Bulk-Cache und Abnahme.
~
NAS-Root bewusst ausklammern
Jahresordner werden segmentweise verarbeitet. Der gemeinsame Root /mnt/echo-nas bleibt wegen fremder Ordner und Traversal-Risiko nicht als produktiver Sync-Pfad 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-Touch-Abnahme abschließen
First-Run-Setup ist backend-seitig deployt. Offen ist die Bedienung am echten Touchscreen: erste PIN setzen, Login, Statusansicht, PIN-Wechsel und Login mit neuer PIN.
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
Besucher-Flow ist sichtbar und nutzbar. Jetzt Lesbarkeit, Abstände, Erfolgsmeldung nach Kopie und Fehlertexte am Touchscreen prüfen.
Kiosk sichtbar Touch-UX
Phase 2
USB-Robustheit formal abnehmen
Kern-Smoke-Test ist bestanden. Jetzt Stick-Abziehen, volle/langsame oder nicht beschreibbare Sticks, Speicherprüfung und Fehlermeldungen dokumentiert testen.
USB-Kernfluss Robustheit
Phase 3
Admin-geschützte Kalenderverwaltung bauen
Read-only-Freigabe und Admin-Auth sind deployt. 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
Künftige NAS-Segmente verstetigen
Segmentweises Vorgehen für weitere Jahre dokumentieren: Backup, Dry-Run, Real-Sync, Bulk-Cache, Abnahme und Rollback.
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
Die Jahressegmente 2025 und 2026 sind verifiziert. Der breite Root /mnt/echo-nas bleibt wegen fremder Ordner und Traversal-Last ein bewusst ausgeklammerter Pfad.
⚠️
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 Kernfluss ist mit echtem Stick bestanden. Zu langsame, volle oder falsch formatierte Sticks sowie Abziehen während des Kopiervorgangs müssen noch sauber abgefangen werden.
⚠️
Besucherbedienung
Der Besucher-Flow ist am Kiosk sichtbar und nutzbar. Für den echten Betrieb müssen Lesbarkeit, Erfolgsmeldungen und Fehlertexte am Touchscreen final abgenommen werden.
⚠️
Kalender-Regeln
Sperr- und Freigabezeiten brauchen klare Prioritäten, konsequent geschützte Schreibpfade und Tests für Sommer-/Winterzeit, Feiertage und Sondertermine.
⚠️
Admin-Ersteinrichtung
Die Auth-Basis ist deployt, aber noch unkonfiguriert. Die erste PIN muss am lokalen Kiosk gesetzt und der PIN-Wechsel am Touchscreen abgenommen werden.
⚠️
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.