• v0.8.0 3671fbdc40

    0.8.0
    Release / veroeffentlichen (push) Canceled after 0s
    CI / pruefen (push) Canceled after 0s
    Stable

    florian.wilde released this 2026-09-02 08:36:43 +00:00 | 6 commits to main since this release

    Zwei größere Bausteine: Anmeldung per Passkey und die Jellyfin-Anbindung.
    Dazu vier Nacharbeiten aus dem laufenden Betrieb.

    ⚠️ Beim Aktualisieren kommen zwei Migrationen mit (passkeys, medienserver). Der Container spielt sie beim Start selbst ein; ./update.sh legt vorher eine Sicherung an.

    Hinzugefügt

    • Anmeldung per Passkey (WebAuthn). Windows Hello, Face ID, Touch ID oder ein Sicherheitsschlüssel — statt Passwort. Anlegen unter Einstellungen → Passkeys, anmelden über „Mit Passkey anmelden" ohne vorherige E-Mail-Eingabe.

      Das Passwort bleibt daneben bestehen, und den letzten verbleibenden Anmeldeweg lässt Flimmer nicht entfernen.

      Drei Dinge, die beim Selbsthosten zählen: HTTPS ist Pflicht (Ausnahme localhost) — sonst verschwindet die Verwaltung mit einem Hinweis statt eines kryptischen Browserfehlers. Der Hostname kommt aus APP_URL, nicht aus dem Host-Header. Und ein Domainwechsel entwertet alle Passkeys, sie sind fest an den Hostnamen gebunden.

      Abschaltbar über ENABLE_PASSKEYS.

    • Jellyfin anbinden — Bestand und Sichtungen übernehmen, unter Einstellungen → Medienserver.

      Zugeordnet wird über die TMDB-Kennung, die Jellyfin mitliefert; kein Raten über Titel und Jahreszahlen. Angemeldet wird mit Benutzername und Passwort, nicht mit einem API-Schlüssel: mit einem Schlüssel liefert Jellyfin den Bestand ohne Gesehen-Status, und zwar ohne Fehlermeldung. Der Verbindungstest prüft das nach und sagt es. Das Zugangstoken liegt verschlüsselt in der Datenbank.

      Der Abgleich ist eine Einbahnstraße: er ergänzt und löscht nie etwas, das in Flimmer steht. Fehlende Titel werden nur mit gesetztem Häkchen aufgenommen — im täglichen Lauf also nie.

      Grenze der Quelle: Jellyfin kennt keine Liste einzelner Sichtungen. Ein dreimal gesehener Film kommt mit einem Termin an, nicht mit drei.

    • Standardreihenfolge je Universum. Welche Reihenfolge beim Öffnen erscheint, lässt sich jetzt festlegen. Die Rangfolge bleibt schlicht: Adresse schlägt Standard schlägt erste.

    Geändert

    • Rückmeldung beim Tippen in Suche und Bibliothek: das Trefferraster wird gedämpft, „sucht …" steht jetzt auch in der Bibliothek. Sammelverzögerung einheitlich 250 ms.
    • update.sh erkennt den Container-Zustand, falls der App-Port nicht auf dem Host veröffentlicht ist — vorher meldete das Skript dann einen Fehlschlag, obwohl das Update durchgelaufen war. Der Changelog zu 0.7.1 führte diese Rückfallprüfung bereits auf; sie war beschrieben, aber nicht umgesetzt.
    • Eigener Compose-Projektname für die Entwicklungsdatenbank.

    Behoben

    • Ein als gesehen markierter Film ließ sich nicht mehr zurücksetzen. Die grüne Plakette ist jetzt klickbar; zurückgenommen wird nur der laufende Durchlauf.
    • Die Beschriftungen im Titelraster sprangen, sobald ein Titel zweizeilig umbrach.

    Anleitung

    docs/ANLEITUNG.md hat zwei neue Abschnitte mit Screenshots: „Anmelden per Passkey" und das Bild im Jellyfin-Abschnitt. npm run screenshots stellt die nötigen Gegenstellen selbst bereit — virtueller Authenticator über CDP, Jellyfin-Nachbau im Skript.

    Getestet

    78 Tests (vorher 52). Die Klickwege zusätzlich gegen einen Produktionsbau geprüft: die Passkey-Anmeldung mit einem virtuellen Authenticator, der Jellyfin-Abgleich gegen einen nachgebildeten Server samt des Falls, in dem der Gesehen-Status fehlt.

    Downloads