SSD Nodes Learn Hosting plans →
Anleitungen Matt ConnorVon Matt Connor · Aktualisiert 2026-08-27

Chaptarr für Hörbücher auf einem VPS selbst hosten

Readarr wurde am 27. Juni 2025 eingestellt. Chaptarr verwaltet Hörbücher und E-Books in einer Compose-Instanz, inklusive PUID, PGID und Metadaten-Fix.

Was Chaptarr ist und warum Readarr-Benutzer es benötigen

Chaptarr ist ein Fork von Readarr, der Hörbücher und E-Books in einer einzigen Instanz verwaltet. Er überwacht neue Veröffentlichungen, übergibt sie an Ihren Download-Client, benennt die Ergebnisse anschließend um und legt sie in Ihrer Bibliothek ab. Chaptarr spielt keine Inhalte ab. Kombinieren Sie es daher mit einem Player wie Audiobookshelf.

Readarr wurde am 27. Juni 2025 eingestellt. Die eigene Mitteilung des Servarr-Teams nennt den Grund: Die Metadaten des Projekts waren unbrauchbar geworden, und die Arbeit der Community zur Umstellung auf Open Library war ins Stocken geraten. Das Repository ist archiviert. Dadurch blieben Buch- und Hörbuchsammlungen ohne einen gepflegten Manager. Chaptarr übernahm diese Aufgabe. Es behält die Struktur bei, die Sie bereits von Sonarr und Radarr kennen (Indexer, Download-Clients, Qualitätsprofile und Stammordner), und ergänzt die Hörbuchverwaltung: eine nach Sprecher ausgerichtete Organisation, mehrere Ausgaben eines Titels, Unterstützung für M4B und kapitelweise MP3-Dateien sowie die Konvertierung von MP3 in M4B.

Für diese Anleitung wurde das Image-Tag chaptarr/chaptarr:0.9.925 verwendet. Es war am 9. August 2026 die neueste Version. Chaptarr bezeichnet sich selbst als Beta-Software. Lesen Sie den Abschnitt zur Wartung am Ende, bevor Sie Chaptarr auf eine Bibliothek ansetzen, die Sie nicht ersetzen können.

Voraussetzungen

Ein VPS mit Docker und dem Compose-Plugin sowie ausreichend Speicherplatz für die Bibliothek. Hörbücher benötigen viel Speicherplatz. Bei einem Import ohne Hardlinks bleiben vorübergehend zwei Kopien einer Datei erhalten. Das wird im folgenden Abschnitt zu Volumes erklärt. Wenn Docker auf dem Server noch nicht installiert ist, beginnen Sie mit Docker auf einem VPS installieren und ausführen und kehren Sie anschließend hierher zurück.

Chaptarr ist derzeit nur als Docker-Image verfügbar. Ein nativer Windows-Build befindet sich laut Projektangaben in Entwicklung. Ein Distributionspaket gibt es nicht. Der Container speichert seine Datenbank standardmäßig in /config als SQLite-Datenbank. Wenn Sie bereits einen PostgreSQL-Server betreiben, kann Chaptarr über Umgebungsvariablen in Chaptarr__Postgres__* eine externe PostgreSQL-Datenbank verwenden. Für einen Benutzer auf einem einzelnen Server ist SQLite die richtige Wahl.

Der Compose-Dienst für Chaptarr

Dieser Dienst wird in einen vorhandenen Stack integriert. Er verwendet einen festgelegten Release-Tag, veröffentlicht die Weboberfläche nur auf dem Loopback-Interface und tritt dem Netzwerk bei, das Ihr Download-Client bereits verwendet.

services:
  chaptarr:
    image: chaptarr/chaptarr:0.9.925
    container_name: chaptarr
    environment:
      - PUID=1000
      - PGID=1000
      - UMASK=002
      - TZ=Europe/Berlin
    volumes:
      - ./config:/config
      - /srv/media/audiobooks:/audiobooks
      - /srv/media/ebooks:/ebooks
      - /srv/media/downloads:/downloads
    ports:
      - 127.0.0.1:8789:8789
    restart: unless-stopped
    networks:
      - arr

networks:
  arr:
    external: true

Die Zeile external: true bedeutet: „Dieses Netzwerk existiert bereits; binde den Dienst daran an.“ Verwenden Sie sie, wenn Prowlarr und Ihr Torrent-Client aus einem anderen Compose-Projekt stammen. Andernfalls erstellt die zweite Compose-Datei ein eigenes isoliertes Netzwerk, und Chaptarr kann qbittorrent anschließend nie per Namen auflösen. Ermitteln Sie den tatsächlichen Namen mit docker network ls. Wenn Ihr Stack bereits in einer Datei definiert ist, fügen Sie den Dienst chaptarr: dieser Datei hinzu und löschen Sie stattdessen den gesamten Block networks:. Der übergeordnete Aufbau wird in einem vollständigen arr-Stack unter Docker Compose erläutert. Die Namensregeln finden Sie unter der Auflösung von Compose-Netzwerken und Dienstnamen.

Erstellen Sie das Konfigurationsverzeichnis selbst und starten Sie den Dienst anschließend.

mkdir -p ./config
sudo chown 1000:1000 ./config
docker compose up -d
docker compose ps
docker compose logs -f chaptarr

docker compose ps sollte den Container als Up anzeigen. Ein Container mit dem Status Restarting konnte nicht gestartet werden und wird erneut gestartet. Die Ursache liegt fast immer im Konfigurationsverzeichnis. Die Protokollausgabe endet, sobald die Anwendung auf Port 8789 lauscht.

PUID, PGID und das Verzeichnis, das Docker als root erstellt

Chaptarr verwendet standardmäßig PUID=99 und PGID=100, wenn Sie diese Werte nicht setzen. Das sind die Werte von unRAID. Auf einem einfachen Ubuntu-VPS gehören sie keinem sinnvollen Benutzer. Daher werden Dateien mit einem Besitzer erstellt, für den Ihr Anmeldekonto keine Schreibberechtigung hat. Lesen Sie Ihre eigenen Werte mit id -u und id -g aus und tragen Sie diese in die Datei ein.

Jeder Container, der auf dieselben Dateien zugreift, benötigt dasselbe Wertepaar. Der Download-Client schreibt nach /srv/media/downloads, Chaptarr verschiebt die Datei nach /srv/media/audiobooks, und der Player liest sie dort. Wenn der Download-Client als 1000:1000 schreibt und Chaptarr als 99:100 läuft, schlägt der Import fehl, weil Chaptarr eine Datei, die ihm nicht gehört, weder löschen noch verschieben kann. UMASK=002 sorgt dafür, dass neue Dateien für die Gruppe schreibbar sind. Das benötigen Sie, wenn mehrere Container eine gemeinsame Mediengruppe verwenden. Die vollständige Zuordnung finden Sie unter wie PUID und PGID einen Containerbenutzer den Dateien auf dem Host zuordnen.

Die README weist auf eine konkrete Falle hin, die eine Wiederholung wert ist. Wenn ./config beim Ausführen von docker compose up nicht existiert, erstellt Docker das Verzeichnis automatisch. Als Besitzer wird root:root eingetragen. Der Container läuft anschließend als UID 1000 und kann seine eigene Datenbank nicht beschreiben. Deshalb wird er beendet und startet anschließend endlos neu. Prüfen Sie den Besitzer mit ls -ln ./config. Der Befehl gibt numerische Besitzer statt Namen aus. Zwei Nullen bedeuten, dass root der Besitzer ist. Korrigieren Sie das mit sudo chown -R 1000:1000 ./config und starten Sie den Container erneut.

Das obige Layout bindet /audiobooks, /ebooks und /downloads als separate Bind-Mounts ein und entspricht damit dem eigenen Startbefehl des Projekts. Es ist übersichtlich, hat aber einen konkreten Nachteil: Hardlinks funktionieren nicht mehr.

Ein Hardlink ist ein zweiter Name für dieselben Daten auf dem Datenträger. Er benötigt keinen zusätzlichen Speicherplatz und wird sofort erstellt. Deshalb bevorzugt die arr-Familie Hardlinks gegenüber dem Kopieren. Ein Hardlink funktioniert nur innerhalb eines Dateisystems. Im Container sind dies drei separate Mountpoints. Daher verweigert der Kernel den Link, selbst wenn die Pfade auf dem Host auf derselben Festplatte liegen. Testen Sie es selbst.

docker exec chaptarr sh -c 'touch /downloads/linktest && ln /downloads/linktest /audiobooks/linktest'

Der Befehl schlägt mit einer Fehlermeldung fehl, die mit Invalid cross-device link endet. Der Kernel verweigert damit das Erstellen eines Links über Mountpoints hinweg. Genau deshalb fällt Chaptarr auf das Kopieren der Datei zurück. Die Kopie ist korrekt, aber langsamer. Außerdem ist das Hörbuch anschließend zweimal vorhanden, bis Sie den Torrent entfernen. Das werden Sie während des Seedings nicht tun. Löschen Sie /srv/media/downloads/linktest anschließend.

Damit Hardlinks funktionieren, binden Sie stattdessen ein übergeordnetes Verzeichnis ein:

    volumes:
      - ./config:/config
      - /srv/media:/data

Setzen Sie anschließend die Root-Ordner in Chaptarr auf /data/audiobooks und /data/ebooks. Geben Sie dem Download-Client denselben /srv/media:/data-Mount, damit beide Container denselben identischen Pfad sehen. Prüfen Sie zuerst, ob die Host-Seite ein einzelnes Dateisystem verwendet: df -h /srv/media/downloads /srv/media/audiobooks muss für beide Pfade denselben Wert in der Spalte Filesystem ausgeben. Unterschiedliche Werte bedeuten unterschiedliche Datenträger. Kein Mount-Layout kann dann über diese Grenzen hinweg Hardlinks erstellen. Der Zielkonflikt zwischen dieser Variante und benanntem Speicher wird unter Bind-Mounts gegenüber benannten Volumes für Medien erläutert.

Die Weboberfläche erreichen, ohne sie zu veröffentlichen

Die Portzeile veröffentlicht den Dienst aus einem bestimmten Grund auf 127.0.0.1. ufw deny 8789 schützt keinen veröffentlichten Docker-Port, weil Docker eigene NAT-Regeln (Network Address Translation) in eine Chain schreibt, die der Kernel vor der Chain von ufw erreicht. Der Netzwerkverkehr wird daher weitergeleitet, bevor Ihre Regel überhaupt geprüft wird. Dieses Verhalten führt ständig zu Problemen und wird in warum ein veröffentlichter Docker-Port Ihre ufw-Regeln ignoriert erklärt. Durch die Bindung an die Loopback-Adresse umgehen Sie dieses Problem vollständig.

Greifen Sie über einen SSH-Tunnel von Ihrem eigenen Rechner auf die Weboberfläche zu:

ssh -N -L 8789:127.0.0.1:8789 you@your-server

Lassen Sie den Tunnel geöffnet und rufen Sie http://127.0.0.1:8789 in Ihrem Browser auf. Richten Sie die Authentifizierung beim ersten Start ein. Erst danach sollten Sie einen Reverse Proxy mit TLS (Transport Layer Security) davor schalten. Wenn Sie auf diese Weise drei oder vier dieser Tools mit jeweils einem eigenen Passwort nutzen, ist ein aufgeräumterer Ansatz, den Proxy hinter einem selbst gehosteten Single-Sign-on-Server wie Authentik zu betreiben. Dann genügt eine Anmeldung für alle Anwendungen, und ein einziger Widerruf sperrt den Zugriff auf alle.

Indexer und Download-Client verbinden

Chaptarr unterstützt die standardmäßigen Protokolle der arr-Indexer und Download-Clients. Daher überträgt Prowlarr die Indexer auf dieselbe Weise wie bei Sonarr. Die üblichen Torrent- und Usenet-Clients lassen sich ohne besondere Konfiguration verbinden.

Eine Einstellung führt bei fast allen zu Problemen. Wenn Chaptarr nach dem Host des Download-Clients fragt, geben Sie nicht localhost oder 127.0.0.1 ein. Innerhalb eines Containers verweist diese Adresse auf den Container selbst. Chaptarr versucht dann, eine Verbindung zu seinem eigenen Port 8080 herzustellen, und meldet, dass keine Verbindung möglich ist. Verwenden Sie stattdessen den Containernamen qbittorrent mit Port 8080. Prüfen Sie mit docker network inspect arr, ob sich beide Container im selben Netzwerk befinden. Der Befehl listet alle verbundenen Container nach Namen auf.

Wenn Ihr Download-Client über einen VPN-Container mit network_mode: "service:gluetun" ausgeführt wird, hat er im Netzwerk keinen eigenen Namen. Er verwendet den Netzwerk-Namespace von Gluetun. Greifen Sie auf ihn unter gluetun über den von Gluetun veröffentlichten Port zu. Diese Konfiguration und das zugehörige Routing werden unter einen Download-Client über Gluetun routen beschrieben.

Der Readarr-Bruch: Was eine Migration tatsächlich kostet

Chaptarr ist nicht mit den Metadatenquellen von Readarr kompatibel. Titel, Autoren und Ausgaben werden über eine eigene Pipeline bei mehreren Providern aufgelöst. Die von Readarr gespeicherten Identifikatoren haben hier daher keine Bedeutung. Es gibt keinen Datenbankimport und keinen direkten Upgrade-Pfad.

Bei einer bestehenden Bibliothek bedeutet das: Die Dateien sind sicher, die Einstellungen nicht. Dieser Prozess verändert nichts, was bereits auf der Festplatte liegt. Sie fügen einen Stammordner hinzu, starten einen Bibliotheksimport, und Chaptarr gleicht die gefundenen Dateien mit seinen eigenen Metadaten ab. Folgendes müssen Sie manuell neu erstellen: Qualitätsprofile, Benennungsformat, Indexer- und Client-Einstellungen sowie jede Zuordnung, bei der Chaptarr falsch liegt. Bei einer großen Bibliothek ist eine manuelle Korrekturrunde erforderlich. Planen Sie dafür eher einen Abend als zehn Minuten ein.

Gehen Sie in dieser Reihenfolge vor. Stoppen Sie den Readarr-Container, behalten Sie aber sein Konfigurationsvolume. So können Sie Ihre alten Einstellungen weiterhin nachlesen, während Sie sie neu eingeben. Richten Sie Chaptarr zunächst auf einen kleinen Ordner und prüfen Sie die Zuordnungen, bevor Sie die gesamte Bibliothek importieren. Entfernen Sie den alten Container erst, wenn Sie mit dem Ergebnis zufrieden sind.

Ein Datenschutzdetail sollten Sie kennen, bevor Sie eine ganze Bibliothek scannen: Abfragen von Metadaten gehen an api2.chaptarr.com. In der README steht, dass diese Anfragen Provider-IDs, Suchtext, Medientyp, Tags und Dateinamen enthalten können und dass sie vollständige Pfade, die Benutzeridentität und Zugangsdaten nicht enthalten. Dateinamen verlassen Ihren Server. Das ist bei einem Metadatendienst normal. Sie sollten diese Entscheidung trotzdem bewusst treffen.

Die Hörbücher an einen Player übergeben

Chaptarr organisiert Dateien. Für die Wiedergabe ist ein anderes Programm zuständig. Audiobookshelf ist dafür der übliche Partner, weil es Ihre Hörposition geräteübergreifend speichert und Apps für Smartphones anbietet. Das offizielle Image heißt ghcr.io/advplyr/audiobookshelf:latest. Das dokumentierte Compose-Beispiel veröffentlicht den Host-Port 13378 auf den Container-Port 80.

  audiobookshelf:
    image: ghcr.io/advplyr/audiobookshelf:latest
    container_name: audiobookshelf
    ports:
      - 127.0.0.1:13378:80
    volumes:
      - ./abs/config:/config
      - ./abs/metadata:/metadata
      - /srv/media/audiobooks:/audiobooks
    environment:
      - TZ=Europe/Berlin
    restart: unless-stopped

Binden Sie denselben Host-Pfad ein, in den Chaptarr schreibt. Fügen Sie ihn anschließend in der Weboberfläche als Bibliothek mit /audiobooks hinzu. Der nächste Scan erkennt den neuen Import.

Wenn Sie Jellyfin bereits betreiben, können Sie den Ordner dort als Bibliothek hinzufügen. Jellyfin gibt die Dateien dann wieder. Bei einer einzelnen langen Hörbuchdatei ist das Fortsetzen der Wiedergabe jedoch weniger zuverlässig als bei einem spezialisierten Hörbuchserver. Die Einrichtung dieses Teils wird unter Jellyfin als Medienserver auf einem VPS betreiben beschrieben. Für den E-Book-Teil übergeben Sie /srv/media/ebooks an eine Leseanwendung. Chaptarr ist fertig, sobald die Datei benannt und abgelegt wurde.

Wartungsrisiko: Lizenz, Laufzeit und ein sich schnell ändernder Tag

Chaptarr steht unter der GPL-3.0-Lizenz. Das Copyright liegt bei den Chaptarr-Mitwirkenden, wobei Teile vom Servarr-Team stammen. Der Quellcode bleibt damit offen, und jeder kann erneut einen Fork erstellen, falls dieser Maintainer das Projekt nicht weiterführt. Chaptarr basiert auf .NET 10, dem Stand August 2026 aktuellen Long-Term-Support-Release der Laufzeit. Die Grundlage wird damit eher über Jahre als über Monate unterstützt. Beide Fakten sind relevant, wenn Sie beurteilen, ob dieses Projekt im nächsten Jahr noch existieren wird.

Die Versionsnummern ändern sich schnell. Releases werden als Pre-Releases veröffentlicht, und 0.9.925 wurde am selben Tag wie diese Anleitung veröffentlicht. Verwenden Sie einen exakt festgelegten Tag. Mit latest kann ein unbeaufsichtigtes docker compose pull Sie innerhalb einer Woche um mehrere Versionen weiterbringen. Bei einem so jungen Fork kann sich die API zwischen Releases ändern. Dadurch können Skripte oder Dashboards unbrauchbar werden, die Sie dafür geschrieben haben. Die Festlegung auf eine Version ist eine Gewohnheit, die Sie auf jedes junge Projekt übertragen sollten, das Sie selbst hosten. Deshalb wird auch die Anleitung zum Betrieb von openGym als selbst gehostetem Workout-Tracker aus genau diesem Grund über einen festen Git-Tag bereitgestellt.

Erstellen Sie vor jedem Upgrade ein Backup. Führen Sie das Upgrade anschließend bewusst durch.

docker compose stop chaptarr
sudo tar czf chaptarr-config-backup.tgz ./config
docker compose start chaptarr
docker compose pull chaptarr
docker compose up -d chaptarr

Das Projekt meldet über einen Zeitraum von ungefähr sechs Monaten und bei mehr als elftausend Benutzern keine Datenverlustereignisse. Trotzdem wird weiterhin empfohlen, Backups zu erstellen und keine Bibliothek einzubinden, deren Verlust Sie nicht verkraften können. Nehmen Sie beide Aspekte ernst. Kopieren Sie das Konfigurationsarchiv vom Server herunter. Ein Backup auf derselben Festplatte wie die zu schützenden Daten ist kein Backup. Dieses einzelne tar-Archiv reicht nur aus, weil Chaptarr seinen Status in einer SQLite-Datei unter /config speichert. Alles, was auf einem separaten Datenbankserver liegt, muss ebenfalls per Datenbank-Dump gesichert werden. So sieht der Backup-Schritt beim Self-Hosting von Chatwoot auf einem VPS zusammen mit dessen Postgres-Daten und hochgeladenen Dateien aus.

Fehlerbilder und die angezeigten Meldungen

Der Container wird in einer Endlosschleife neu gestartet. docker compose ps zeigt Restarting. Führen Sie ls -ln ./config aus. Zwei Nullen in den Eigentümerspalten bedeuten, dass Docker das Verzeichnis als root angelegt hat und der Containerbenutzer nicht in seine Datenbank schreiben kann. Führen Sie sudo chown -R 1000:1000 ./config aus.

Die Importe werden nie abgeschlossen, und die Dateien bleiben im Download-Verzeichnis. Chaptarr kann den Download lesen, aber nicht in die Bibliothek schreiben. Vergleichen Sie ls -ln /srv/media/audiobooks mit PUID und PGID. Ein Verzeichnis, das einer anderen UID gehört, oder der Gruppe gehört, ohne dass diese Schreibrechte hat, verhindert das Verschieben. UMASK=002 verhindert den zweiten Fall bei neuen Dateien.

Der Speicherplatzbedarf verdoppelt sich nach jedem Import. Es wurde kein Hardlink erstellt, daher wurde die Datei kopiert. Führen Sie den ln-Test aus dem Abschnitt zu den Volumes aus. Ein Fehler, der mit Invalid cross-device link endet, bestätigt die Ursache. Die Lösung ist ein gemeinsamer übergeordneter Mount.

Der Download-Client kann keine Verbindung herstellen. Sie haben localhost als Host eingetragen. Innerhalb des Containers ist das Chaptarr selbst. Verwenden Sie den Containernamen und prüfen Sie, ob docker network inspect arr beide Container auflistet.

Compose startet den Dienst nicht. Bind for 127.0.0.1:8789 failed: port is already allocated bedeutet, dass ein anderer Prozess den Port verwendet. Ermitteln Sie ihn mit sudo ss -lntp | grep 8789.

Der Browser zeigt überhaupt nichts an. Wenn der Port an 127.0.0.1 gebunden ist, kann sich Ihr Laptop über das Internet nicht damit verbinden. Das ist das beabsichtigte Verhalten. Öffnen Sie zuerst den SSH-Tunnel.

FAQ

Kann ich meine Readarr-Bibliothek zu Chaptarr migrieren?

Nicht als Import. Chaptarr ist nicht mit den Metadatenquellen von Readarr kompatibel und verwendet eine eigene Provider-Pipeline. Daher haben die in Readarr gespeicherten Bezeichner keine Bedeutung, und es gibt keine Datenbankkonvertierung. Ihre Dateien auf dem Datenträger bleiben unverändert. Fügen Sie dieselben Pfade als Stammordner hinzu, führen Sie einen Bibliotheksimport aus und lassen Sie Chaptarr die Dateien selbst zuordnen. Qualitätsprofile, das Benennungsformat, Indexer-Einstellungen und falsche Zuordnungen müssen manuell bearbeitet werden. Beginnen Sie daher mit einem kleinen Ordner, bevor Sie alles importieren.

Warum kann Chaptarr nicht in meinen Audiobook-Ordner schreiben?

Der Benutzer des Containers besitzt die Dateien nicht. Wenn diese Variablen nicht gesetzt sind, verwendet Chaptarr PUID=99 und PGID=100 als Fallback. Das sind die Werte von unRAID und auf einem normalen Ubuntu VPS falsch. Setzen Sie sie auf Ihre eigenen Werte für id -u und id -g. Verwenden Sie dasselbe Paar auch im Download-Client und setzen Sie UMASK=002, damit neue Dateien für die Gruppe schreibbar bleiben. Prüfen Sie die Eigentumsverhältnisse mit ls -ln im Bibliotheksverzeichnis. Der Befehl gibt Zahlen statt Namen aus, sodass Sie die Werte nicht direkt vergleichen können.

Warum hat sich mein belegter Speicherplatz nach einem Import verdoppelt?

Chaptarr hat die Datei kopiert, weil kein Hardlink erstellt werden konnte. Wenn Sie /downloads und /audiobooks als separate Bind-Mounts einhängen, sind sie im Container separate Mount-Punkte. Der Kernel verweigert einen Hardlink über Mount-Punkte hinweg mit Invalid cross-device link. Hängen Sie stattdessen ein übergeordnetes Verzeichnis wie /srv/media:/data ein und verwenden Sie innerhalb der Anwendung /data/downloads und /data/audiobooks. Beide Pfade müssen außerdem auf demselben Dateisystem des Hosts liegen. df -h bestätigt dies.

Spielt Chaptarr meine Audiobooks ab?

Nein. Chaptarr findet, lädt herunter, benennt um und verwaltet die Dateien. Die Wiedergabe übernimmt ein separates Programm. Audiobookshelf ist eine gängige Kombination, weil es die Wiedergabeposition geräteübergreifend speichert. Verwenden Sie dafür das offizielle Image ghcr.io/advplyr/audiobookshelf:latest und hängen Sie denselben Audiobook-Pfad des Hosts ein. Jellyfin kann die Dateien ebenfalls abspielen, wenn Sie den Ordner als Bibliothek hinzufügen. Bei langen Audiobooks, die aus einer einzelnen Datei bestehen, ist das Fortsetzen der Wiedergabe jedoch weniger zuverlässig.

Ist Chaptarr für eine wichtige Bibliothek sicher genug?

Chaptarr ist Beta-Software aus einem jungen Fork. Das Projekt weist selbst darauf hin und meldet zugleich über einen Zeitraum von etwa sechs Monaten bei mehr als elftausend Benutzern keine Datenverluste. Positiv sind die GPL-3.0-Lizenz, durch die der Code weiter geforkt werden kann, sowie die Basis auf .NET 10, einer Long-Term-Support-Laufzeitumgebung im August 2026. Verwenden Sie einen exakten Image-Tag wie 0.9.925 statt latest. Sichern Sie /config vor jedem Upgrade und bewahren Sie das Archiv außerhalb des Servers auf.