Access Log zeichnet auf, wer sich mit deinem Jellyfin-Server verbindet, wann, von wo und mit welcher App und welchem Gerät, damit du geteilte Passwörter, unbekannte Geräte und Anmeldeversuche erkennst.
Was es macht
- Ereignisse: erfolgreiche Anmeldungen, falsche Passwörter (nie das versuchte Passwort), geöffnete und geschlossene Sitzungen, IP-Wechsel während einer Sitzung und optional Wiedergabestarts.
- Zu jedem Ereignis: Benutzer, Zeit, IP-Adresse, App und ihre Version, Gerätename und -ID, Land, Region, Stadt und Internetprovider (ASN).
- Bekannte Geräte pro Benutzer: erste und letzte Verbindung, Anzahl der Sitzungen, letzte Adressen.
- Zusammenfassung nach Benutzer und Land sowie die Adressen mit falschen Passwörtern; Filter und CSV-Export.
- Warnungen im Aktivitätsprotokoll von Jellyfin: ein neues Gerät, ein neues Land für einen Benutzer, wiederholt falsche Passwörter von derselben Adresse.
- Standort aus einer lokalen GeoLite2-Datenbank (kostenloses MaxMind-Konto), automatisch aktualisiert. IP-Adressen werden nie an einen externen Dienst gesendet.
Voraussetzungen
- Jellyfin Server 12.2 oder neuer.
- Ein kostenloses MaxMind-Konto und ein License Key für die Datenbanken GeoLite2 City und ASN (ohne sie werden Ereignisse ohne Standort aufgezeichnet).
Häufige Fragen
Wie sehe ich, wer sich an meinem Jellyfin-Server angemeldet hat? Installiere Access Log; ab dann erscheint jede Anmeldung, jeder Fehlversuch und jede Sitzung unter Dashboard → Access Log → Activity, mit IP-Adresse, Standort, App und Gerät. Siehe die Anleitung.
Kann es mich vor einem neuen Gerät oder Land warnen? Ja. Warnungen bei einem neuen Gerät, einem neuen Land und wiederholt falschen Passwörtern gehen in das Aktivitätsprotokoll von Jellyfin; am ersten Tag nach der Installation werden Geräte und Länder ohne Warnungen gelernt.
Was es wohin sendet
- MaxMind GeoLite2 (
download.maxmind.com) — optional, standardmäßig aus: Nur wenn du dein eigenes kostenloses MaxMind-Konto (Account ID + License Key) einträgst, lädt das Plugin die Datenbanken GeoLite2 City und ASN herunter (mit deinem Konto authentifiziert; es werden keine IP-Adressen oder Benutzerdaten gesendet). Aktualisiert, wenn sie älter als 7 Tage sind (einstellbar). - Die IP-Geolokalisierung erfolgt lokal, in der heruntergeladenen Datenbank; IP-Adressen werden nie an einen externen Dienst gesendet. Private/lokale Adressen werden nicht nachgeschlagen.
- Warnungen (neues Gerät, neues Land, gehäufte Fehlanmeldungen) gehen nur in das lokale Aktivitätsprotokoll des Servers.
- Keine CDN-Skripte oder externen Schriftarten in den Seiten.
- Dazu der Lizenz-Client, in jedem Plugin gleich: siehe Lizenzierung und Datenschutz in unseren Plugins.
Lokal gespeichert (Datenordner des Plugins):
events/events-YYYY-MM.jsonl: jede Anmeldung / jeder Fehlversuch / jede Wiedergabe / jede Adressänderung — Zeit, Benutzer, IP, Standort (Land, Region, Stadt, ungefähre Koordinaten, ASN/ISP), Zugriffsweg (direkt oder über Cloudflare, Host, User-Agent, X-Forwarded-For-Kette), App, Version, Gerät, Sitzung. Das versuchte Passwort wird nie gespeichert.events/known.json: bekannte Geräte und Länder pro Benutzer (ohne Ablauf).geoip/*.mmdb: die MaxMind-Datenbanken. Die MaxMind-Kontodaten stehen in der Plugin-Konfiguration (unverschlüsselt).- Aufbewahrung: standardmäßig 365 Tage (einstellbar); gelöscht werden ganze Monatsdateien, es kann also bis zu etwa einem zusätzlichen Monat auf der Festplatte bleiben. Der CSV-Export wird vom Administrator ausgelöst.
- Eine Middleware liest die Request-Header (aus der Autorisierung wird nur die DeviceId entnommen; Tokens werden nicht gespeichert).
Das sind personenbezogene Daten (IP-Adressen, Standorte, Geräte): Bewahre sie nur so lange auf, wie du sie brauchst, und informiere die Nutzer deines Servers, dass Zugriffe protokolliert werden.
Kompatibilität mit Clients
Die Erfassung erfolgt serverseitig (die Anmelde- und Sitzungsereignisse des Servers) und funktioniert daher mit jedem Client; die Oberfläche ist nur die Admin-Seite.
- Jellyfin Web / medialab Server: ✅ (End-to-End 14/14 auf API-Ebene + Seiten).
- Jellyfin-Apps (Android/Android TV, Swiftfin, Findroid, Kodi/JellyCon, Infuse, Streamyfin), TV-Browser: 🟢 die Erfassung hängt nicht vom Client ab; ❔ nicht einzeln getestet. Der angezeigte App-/Gerätename ist der, den der Client meldet.
Legende: ✅ verifiziert (End-to-End- oder Test auf dem Gerät) · 🟢 serverseitig, funktioniert mit jedem Client (konstruktionsbedingt, kein clientspezifischer Test) · ➖ nicht zutreffend · ❔ nicht getestet.
Lizenzierung
Das Plugin ist Open Source (GPL-3.0). Die installationsfertigen Builds sind öffentlich, genau wie der Quellcode. Was du kaufst, ist das Abonnement: die Lizenz zur Nutzung des Plugins auf einem Jellyfin-Server, die Updates, die dein Tarif umfasst, und Support: jedes Update, solange das Abonnement aktiv ist, über dein privates Plugin-Repository, und Hilfe, wenn etwas nicht funktioniert. Das Plugin prüft den Abonnementschlüssel einmal am Tag; ohne gültiges Abonnement stoppt es, bis du verlängerst (es wird nichts gelöscht). Monatlich, jährlich oder als Lifetime-Lizenz (die Lifetime-Lizenz umfasst ein Jahr Updates), oder im Jellyfin-Paket enthalten. 30 Tage kostenlos testen.
Quellcode. Für jede Version ist der vollständige zugehörige Quellcode öffentlich, neben dem Build, im Changelog, und auch in deinem Konto (Konto → Lizenzen, Quellcode); jedes Archiv enthält den vollständigen Text der GPL-3.0 (LICENSE). Wenn du den Quellcode einer Version brauchst, die du nicht mehr herunterladen kannst, frag uns, und wir schicken ihn dir. Siehe Abschnitt 10 der EULA.
