Behandle eine Compose-Datei, ein Git-Repository und ein Backup-Archiv nicht als gleichwertige Speicherorte für Jellyfin-Zugangsdaten. Die Bereitstellungsvorlage kann weit verbreitet kopiert werden; geheime Werte sollten einen engeren Lebenszyklus, eine klar begrenzte Zugriffsebene und einen eigenen Wiederherstellungspfad haben.
Bei einem Jellyfin-Stack können sensible Daten API-Schlüssel, Zugangsdaten für Reverse-Proxy oder Tunnel, Tokens von DNS-Anbietern, Passwörter für Backup-Repositories, Verschlüsselungsschlüssel, Datenbankzugangsdaten unterstützender Dienste sowie weitere von Plugins oder Automatisierungen verwendete Tokens umfassen. Erfasse sie zunächst vollständig und entscheide dann, welche reproduzierbar oder wiederherstellbar sein müssen und welche einfach neu ausgestellt werden können.
Geheimnisverweise von geheimen Werten trennen
Halte Compose deklarativ: Dienst-Images, Netzwerke, Mounts, Ports, Variablennamen und Geheimnisverweise gehören in die Datei; unverschlüsselte Zugangsdaten dagegen nicht. Ein Platzhalter wie BACKUP_PASSWORD dokumentiert die Anforderung, ohne die Compose-Datei in einen Speicher für Zugangsdaten zu verwandeln.
Unverschlüsselte Umgebungsdateien sind praktisch, lassen sich aber leicht in die Versionsverwaltung, Fehlerbehebungspakete oder unverschlüsselte Backups kopieren. Ein aktueller Leitfaden zur Verwaltung von Docker-Geheimnissen unterscheidet zwischen dem Abfluss von Geheimnissen beim Erstellen von Images, der Verbreitung lokaler .env-Dateien und der Offenlegung von Umgebungsvariablen zur Laufzeit – unterschiedliche Wege zum selben Verlust von Zugangsdaten.
Verwende einen Geheimnismanager, den von Compose unterstützten Mechanismus für Geheimnisdateien oder eine andere für den jeweiligen abhängigen Dienst geeignete Methode zur Laufzeit-Injektion. Gehe nicht davon aus, dass jede Jellyfin-Einstellung die Konvention _FILE unterstützt; verwende dateibasierte Injektion nur dort, wo die jeweilige Komponente dies unterstützt.
Verhindere, dass Geheimnisse in Images, Repositories und den Shell-Verlauf gelangen
Schließe lokale Geheimnisdateien sowohl aus der Versionsverwaltung als auch aus dem Docker-Build-Kontext aus. Eine Datei in .gitignore verhindert nicht, dass ein weit gefasstes COPY in der Dockerfile sie in ein Image übernimmt, wenn .dockerignore dies weiterhin zulässt.
Übergebe langlebige Zugangsdaten nicht direkt in einer Befehlszeile, die im Shell-Verlauf gespeichert wird. Gib Geheimnisse während der Startfehleranalyse nicht aus. Vermeide es, die aufgelöste Umgebung in Tickets oder gemeinsam genutzte Chats zu kopieren, wenn zur Diagnose eine einzelne Variable ausreicht.
Nach einem vermuteten Leak ist das Löschen der Zeile aus der aktuellen Compose-Datei keine Behebung. Rotiere die offengelegten Zugangsdaten, mache alte Tokens nach Möglichkeit ungültig, überprüfe die Repository- und Image-Historie und entferne den durchgesickerten Wert aus künftigen Backups und Diagnoseinformationen.
Entwirf Backups so, dass erforderliche Geheimnisse wiederherstellbar, aber nicht beiläufig lesbar sind
Einige Geheimnisse gehören zur Wiederherstellung. Ein verschlüsseltes Backup ist nutzlos, wenn das Passwort des Repositorys oder der Entschlüsselungsschlüssel zusammen mit demselben Server verloren gehen. Außerdem kann ein wiederhergestellter Proxy- oder Automatisierungs-Stack Zugangsdaten benötigen, die sich nicht allein aus der Compose-Vorlage rekonstruieren lassen.
Ein praktisches Wiederherstellungsverzeichnis für selbst gehostete Systeme behandelt Schlüssel, Tokens, Wiederherstellungscodes und Backup-Passwörter als zentrale Wiederherstellungsdaten und bewahrt zugleich die Schlüssel zum Entsperren der Backups außerhalb des zu sichernden Servers auf. Das ist etwas anderes, als eine unverschlüsselte .env-Datei in jedes Archiv zu legen.
Erstelle ein Verzeichnis zur Wiederherstellung von Geheimnissen, in dem für jede erforderliche Zugangsinformation der Verantwortliche, der Speicherort der maßgeblichen Kopie, die Methode zur Wiederherstellung oder Neuausstellung und das damit entsperrte Backup aufgeführt sind. Speichere sensible Werte in einem verschlüsselten Passwortmanager, einem verschlüsselten Backup-Satz oder einem separaten, geschützten Wiederherstellungspaket mit für den Haushalt angemessenen Zugriffskontrollen.
Verhindere, dass Protokolle und Fehlerbehebungspakete zu einem zweiten Geheimnisspeicher werden
Proxy-Anforderungs-URLs, Umgebungs-Dumps, Debug-Ausgaben von Anwendungen und Shell-Mitschnitte können Tokens offenlegen, selbst wenn Compose sauber ist. Suche vor dem Teilen von Protokollen nach Autorisierungs-Headern, API-Schlüsseln, Tokens in Abfragezeichenfolgen, Cookies, privaten Hostnamen und Zugangsdaten.
Richtlinien zur Protokollierung empfehlen, sensible Felder zu schwärzen, bevor Telemetriedaten das System verlassen. Wende dieselbe Regel auf Supportpakete für Heimserver an: Bewahre das Original bei Bedarf zur Diagnose lokal auf, teile jedoch eine geschwärzte Kopie.
Beschränke den Zugriff auf Backups und Protokolle getrennt. Wer Medien-Backups lesen kann, benötigt nicht automatisch Zugriff auf DNS-Tokens oder Reverse-Proxy-Zugangsdaten. Die Offenlegung von Geheimnissen ist ebenso ein Problem der Zugriffsumfangs wie des Dateiformats.
Führe gemeinsam einen Leak- und einen Wiederherstellungstest durch
Erstelle ein Canary-Geheimnis mit einem erkennbaren Testwert, stelle den Stack bereit und suche im Compose-Verzeichnis, in der Image-Historie, in der Container-Inspektion, in Protokollen, im Backup-Katalog und in einer extrahierten Testwiederherstellung nach diesem Wert. So wird sichtbar, wo der aktuelle Ablauf Geheimnisse kopiert, ohne ein echtes Zugangsdaten zu gefährden.
Führe anschließend den umgekehrten Test durch: Stelle den Jellyfin-Stack mithilfe ausschließlich der dokumentierten Wiederherstellungsmaterialien auf einem isolierten Ziel wieder her. Wenn die Wiederherstellung eine Zugangsinformation benötigt, die nur auf dem ausgefallenen Host vorhanden ist, enthält das Design zu wenige Geheimnisse. Wenn dagegen jedes gewöhnliche Backup alle Zugangsdaten unverschlüsselt offenlegt, enthält es zu viele.
Die Least-Privilege-Grenze von ZimaSpace ist die abschließende Prüfung: Jeder Dienst, jeder Backup-Job, jeder Administrator und jeder Wiederherstellungsprozess sollte nur die für seine Aufgabe erforderlichen Geheimnisse erhalten. Rotiere alles, was diese Grenze unerwartet überschreitet.
Support & Tipps
Mehr zum Lesen

Sollte Jellyfin ein gemeinsames Konto oder separate Haushaltskonten verwenden?
Wählen Sie Jellyfin-Haushaltskonten nach den benötigten Grenzen für Identität, Zugriff, Jugendschutz und Wiederherstellung aus.

Warum bleibt der Speicherverbrauch von Jellyfin nach Abschluss der Arbeit hoch?
Unterscheiden Sie das Wachstum des Jellyfin-Prozesses vom Linux-Cache und untersuchen Sie es nur, wenn der Speicherverbrauch weiter ansteigt oder tatsächlich Druck auf den Arbeitsspeicher...

Anzeichen dafür, dass ein Jellyfin-Speicherlayout zum Wiederherstellungsrisiko wird
Prüfen Sie die Speicherrollen von Jellyfin, trennen Sie den laufenden Zustand von Backups und wiederherstellbaren Daten und belegen Sie das Layout durch eine Wiederherstellung.

