Sync
Liest Filme, Serien, Tags und Stammordner von jedem verbundenen Radarr und Sonarr. Eine leere Antwort wird nie als Massenlöschung verstanden.
Radarr, Sonarr
nichts
Routarr liest Ihre Bibliotheken, reichert jeden Titel aus den von Ihnen geordneten Metadatenquellen an und entscheidet, in welchen Stammordner er gehört. Sie sehen zuerst den ganzen Plan, geschrieben wird erst, wenn Sie es sagen.
Selbst gehostet. Ein Container. Der Probelauf bleibt an, bis Sie ihn ausschalten.
| Titel | Über Regel | Ziel | Gate | Status |
|---|---|---|---|---|
| #10Japan-Animation | /movies/anime | RADARR | vorgeschlagenRadarr | |
| Warum✓Genre enthält Animation · beobachtet Animation, Sci-Fi✓Sprache ist ja · beobachtet ja✓außer Freigabe ist G · beobachtet R, der Ausschluss griff nichtRegel #10 gewinnt nach Priorität · #20 und #30 wurden nicht gefragt | ||||
| #20Konzertfilme | /movies/concerts | RADARR | vorgeschlagenRadarr | |
| Warum✗#10 Genre enthält Animation · beobachtet Music, Documentary✓#20 Genre enthält Music · beobachtet Music, Documentary✓#20 Schlagwort enthält concert · beobachtet concert, live | ||||
| #10Japan-Animation | /tv/anime | SONARR | bestätigenSonarr | |
| Warum✓Genre enthält Animation · beobachtet Animation, Sci-Fi✓Sprache ist ja · beobachtet jabraucht Ihr Wort · /tv/anime hat 38 GB frei, die Serie wiegt 41 GB | ||||
| #30Familie & Kinder | /movies/kids | RADARR | vorgeschlagenRadarr | |
| Warum✗#10 Sprache ist ja · beobachtet en✗#20 Genre enthält Music · beobachtet Family, Comedy✓#30 Genre enthält Family · beobachtet Family, Comedy | ||||
| keine Regel trifft zu | /movies | RADARR | bleibtRadarr | |
| Warum✗#10 Genre enthält Animation · beobachtet Drama, Music✗#20 Schlagwort enthält concert · beobachtet keines✗#30 Genre enthält Family · beobachtet Drama, Music | ||||
| #20Konzertfilme | /movies/concerts | RADARR | am PlatzRadarr | |
| Warum✓#20 Genre enthält Music · beobachtet Music, Documentaryschon in /movies/concerts · nichts zu verschieben | ||||
Die erste zutreffende Regel gewinnt. Ausschlüsse können ihr Veto einlegen. Alles wird erklärt.
In aktiver Entwicklung. Regelwerk und Schutzmechanismen sind stabil. Die Oberfläche wird sich weiter verändern.
Routarr ist genau diese fehlende Entscheidungsschicht: ein Ort, an dem die Logik lebt, mit den Ordnern, die Ihre Arrs schon haben, und per Webhook entscheidet es schon bevor der Download ankommt, solange der Ordner noch leer ist und sich nichts bewegen muss.
Was die Nutzlast bereits enthältWo es landet
von keiner Regel gelesenein Ordner, fünf Filme
Von Routarr gelesenWo es landet
Nichts wird geschrieben, bevor eine ausdrückliche Aktion es verlangt, und der globale Probelauf blockiert Schreibzugriffe am Server, ganz gleich was die Oberfläche tut.
Der SchrittLiestSchreibt
Liest Filme, Serien, Tags und Stammordner von jedem verbundenen Radarr und Sonarr. Eine leere Antwort wird nie als Massenlöschung verstanden.
Radarr, Sonarr
nichts
Genres, Sprache und Altersfreigabe kommen mit der Synchronisation gratis. TMDb ergänzt Schlagwörter und Land: ein Aufruf je Titel, zwischengespeichert, entdoppelt, mit begrenzter Parallelität.
TMDb, AniList, OMDb…
seinen eigenen Cache
Regeln laufen nach aufsteigender Priorität. Die erste Übereinstimmung gewinnt. Ausschlüsse legen ihr Veto gegen eine sonst zutreffende Regel ein. Was nirgends passt, fällt an Ihre Standardkategorie.
Ihre Regeln
einen Plan, den Sie lesen können
Verschiebungen werden je Instanz und Zielordner gebündelt, über die Arr-API geschrieben und dann neu eingelesen. Jede angewandte Verschiebung lässt sich zurücknehmen.
den Plan, den Sie freigegeben haben
Ihre Bibliothek
ein Schritt schreibt in Ihre Bibliothekund der globale Probelauf-Schalter blockiert genau den am Server

Verknüpfen Sie Bedingungen mit ALLE oder BELIEBIGE, ergänzen Sie ausdrückliche Ausschlüsse, ordnen Sie Regeln nach Priorität. Genre, Schlagwort, Originalsprache, Land, Altersfreigabe, Jahr, Status, aktueller Ordner, Titel, externe IDs, Alter, dazu Signale, die nur Ihr Arr hat: Tags, Sonarrs Serientyp, Belegung auf der Platte und Staffelanzahl.
leitet weiter nach anime
AlleMindestens eine
original_languageist eines vonja
genre_containsenthältAnimation
certification_inist eines vonGUTV-Y
Ausschlüsse sind der Grund, warum das funktioniert. „Japanische Animation“ würde
Mein Nachbar Totoro verschlucken. Der bewusste Ausschluss jugendfreier Freigaben übergibt ihn
stattdessen an kids, und die Oberfläche sagt das auch.
Eine Einstufung, die Sie nicht prüfen können, ist eine Einstufung, der Sie nicht trauen können. Routarr hält Bedingung für Bedingung fest, was erwartet und was beobachtet wurde, für die siegreiche Regel wie für jede Regel, die nicht gewonnen hat.
Akira (1988) · jede Regel, die ihn geprüft hat
erfüllt — original_languageerwartet ja
beobachtet ja
erfüllt — genre_containserwartet Animation
beobachtet Animation, Science Fiction
erfüllt — certification_inerwartet not G, U, TV-Y
beobachtet 15
nicht erfüllt — genre_containserwartet Documentary, Music
beobachtet Animation, Science Fiction
nicht erfüllt — certification_inerwartet G, U, TV-Y
beobachtet 15
erfüllt — genre_containserwartet Animation
beobachtet Animation, Science Fiction
Die Engine selbst schreibt niemals Fließtext: sie liefert Schlüssel und Parameter, und der Text entsteht in Ihrer Sprache erst bei der Anzeige, die Begründungen sind in allen 26 Sprachen übersetzt und nicht im Moment ihrer Berechnung auf Englisch eingefroren.

Routarr verschiebt Dateien auf der Platte. Jedes dieser Tore ist standardmäßig aktiv, sie laufen in dieser Reihenfolge, und das erste, das widerspricht, stoppt die übrigen. Das erste allein genügt, um die ganze Anwendung schreibgeschützt zu machen.
Ab dem ersten Start aktiv. Solange er an ist, wird nichts geschrieben, ganz gleich, worauf Sie klicken und welche Automatik aktiviert ist.
Eine harte Obergrenze dafür, wie viele Einträge ein einzelner Anwendungslauf berühren darf. Eine ganze Bibliothek neu einzuordnen ist eine eigene, bewusste Handlung.
Ein Ziel, das beim letzten Nachsehen nicht geantwortet hat. Ein NAS im Ruhezustand lässt sich nicht von einer toten Platte unterscheiden, also fragt dieses Tor, statt abzulehnen.
Der Plan gewogen gegen den freien Platz, den die Synchronisation bereits erfasst hat, und gezählt werden nur die Bytes, die das Dateisystem wechseln.
Ab einer von Ihnen gewählten Zahl ist eine zweite, ausdrückliche Bestätigung nötig, erkannt an einem stabilen Fehlercode, nicht am Abgleich englischen Textes.
Jede Entscheidung wird erneut gegen die aktuellen Regeln und die aktuelle Bibliothek geprüft. Ein Vorschlag, den die Regeln nicht mehr rechtfertigen, wird abgelehnt statt ausgeführt.
lehnt abbricht die Anwendung abfragtstellt unter eigenem Namen eine Frage, die Sie beantworten
Automatisches Anwenden gibt es, und es ist standardmäßig aus. Aktiviert berührt es nur Titel ohne Dateien auf der Platte, den Fall, in dem ein Ordnerwechsel ein Metadaten-Schreibvorgang ist und sich nichts bewegt. Alles bereits Heruntergeladene bleibt in der menschlichen Warteschlange.
Routarr legt niemals eine Bibliotheksstruktur an. Es liest die Stammordner, die Radarr und Sonarr melden, und wo Sie ein Ziel wollen, das dort nicht steht, tragen Sie es hier ein und es wird so gekennzeichnet. So oder so hängen Sie es an eine Kategorie, die Sie benannt haben, und ein deklarierter Ordner übernimmt freien Platz und Erreichbarkeit vom synchronisierten Ordner, unter dem er liegt.
PfadInstanzHerkunftFreier PlatzKategorie
/moviesRadarrsynchronisiert2.4 TiBstandard
/movies/animeRadarrdeklariert2.4 TiBanime
/movies/kidsRadarrdeklariert2.4 TiBkids
/movies/concertsRadarrdeklariert2.4 TiBconcerts
/tvSonarrsynchronisiert6.1 TiBstandard
/tv/animeSonarrsynchronisiert6.1 TiBanime
/mnt/archiveSonarrsynchronisiertnicht erreichbarohne Kategorie
sieben Ziele auf zwei Instanzendrei hier deklariert, vier von den Arrs gelesen
Freier Speicher und Erreichbarkeit kommen direkt vom Arr. Zwei Ordner, die auf einer Instanz dieselbe Kategorie beanspruchen, werden abgelehnt statt stillschweigend aufgelöst, und eine Kategorie, die kein Ordner bereitstellt, wird gemeldet, bevor sie Ihre Medien unbemerkt übergehen kann.

Ein Dashboard über alle verbundenen Instanzen: was erfasst ist, was angereichert ist, was auf Sie wartet.

Datenblattv0.1.0
beliebig vieleMehrere Server
Beliebig viele Radarr- und Sonarr-Server, jeder mit eigenem Synchronisationsintervall, eigenen Ordnern und Zuordnungen.
eine geheime URL je InstanzWebhooks in Echtzeit
Eine geheime URL je Instanz. Neuzugänge werden sofort synchronisiert, angereichert und bewertet, statt beim nächsten Abruf.
geht jeder Regel vorÜberschreiben und zurücknehmen
Heften Sie einen Titel an eine Kategorie, und die Engine hört auf zu diskutieren, eine Überschreibung schlägt jede Regel. Jede angewandte Verschiebung lässt sich aus der Historie zurücknehmen.
/metrics, derselbe API-SchlüsselPrometheus-Metriken
Bibliotheksgröße, Entscheidungen nach Kategorie und Status, Zustand der Instanzen und der Schutzgeländer, hinter demselben API-Schlüssel.
ein generischer JSON-WebhookAusgehende Benachrichtigungen
Ein generischer JSON-Webhook, Discord, Gotify, ntfy, Apprise, ausgelöst bei einem Zustandswechsel, nie in einer Schleife.
AES-256-GCM im RuhezustandPortable Konfiguration, versiegelte Schlüssel
Regeln, Kategorien, Zuordnungen und Überschreibungen lassen sich als JSON exportieren und zwischen Installationen mitnehmen. Arr-API-Schlüssel sind AES-256-GCM-verschlüsselt und verlassen das System nie.
docker compose up.Ein Image trägt Backend und Oberfläche, für amd64 und arm64, ein Synology- oder QNAP-NAS, Unraid, TrueNAS, ein Raspberry Pi oder ein schlichter VPS. Compose-Datei speichern, starten, und der erste Lauf braucht keine Konfigurationsdatei.
mkdir -p data && sudo chown 1000:1000 data
Der Container läuft als uid 1000 und gibt alle Capabilities ab, also muss ihm das Volume gehören.
docker compose up -d
Ein Image, Server und Oberfläche zusammen. Sonst ist nichts zu installieren.
docker exec routarr cat /data/routarr.api_key
Der Schlüssel entsteht beim ersten Start und wird neben die Datenbank geschrieben. Das Log zeigt ihn einmal, die Datei behält ihn.
http://localhost:9876
Der globale Probelauf ist bereits an. Es kann nichts geschrieben werden, solange Sie ihn nicht ausschalten.
services:
routarr:
image: ghcr.io/routarr/routarr:latest
container_name: routarr
ports:
- "9876:9876"
volumes:
- ./data:/data
restart: unless-stopped
cap_drop:
- ALL
security_opt:
- no-new-privileges:trueSichern Sie routarr.db und routarr.key gemeinsam.
Ohne den Schlüssel sind die gespeicherten Arr-Zugangsdaten nicht wiederherstellbar.
Dann: Ihre Arrs verbinden, Ordner auf Kategorien abbilden, eine Regel schreiben und in der Vorschau ansehen, einen Probelauf fahren, und den globalen Probelauf erst ausschalten, wenn Ihnen der Plan zusagt.
Die meisten Antworten unten sind nein, und das ist das Nützlichste, was dieser Abschnitt zu sagen hat.
Die SorgeDie AntwortWas es sichert
nur wenn Sie zweimal fragen
Der globale Probelauf, standardmäßig an
Der globale Probelauf ist ab dem ersten Start aktiv, die Option, Dateien auf der Platte zu verschieben, ist standardmäßig nicht gesetzt, und ab einer Schwelle verlangt das Anwenden eine ausdrückliche Bestätigung. Ohne die Verschiebe-Option richtet Routarr nur den Bibliothekseintrag neu aus und lässt die Dateien, wo sie sind.
nein
Der Stammordner, nicht der Name
Ein Verschieben ändert den Stammordner über Ihrem Titel und behält den Ordnernamen exakt so, wie er ist, eine Plex- oder Jellyfin-Bibliothek, die darauf zeigt, funktioniert weiter.
nein
Die Arrs sind eine eigene Quelle
Radarr und Sonarr sind selbst eine Metadatenquelle, sie liefern bereits Genres, Originalsprache und Altersfreigabe, und Routarr liest sie aus derselben Antwort, mit der es die Bibliothek synchronisiert. Für Schlagwörter und Herkunftsland kommt auch AniList ohne Schlüssel aus. TMDb, OMDb und TheTVDB stehen bereit, wenn Sie sie wollen. Quellen sind eine geordnete Liste: Sie entscheiden, wer bei Widerspruch gewinnt.
nein
Zwei Felder, über ihre eigene API
Es versucht es bewusst nicht. Routarr verwaltet niemals Downloads, Indexer oder die Bibliothek selbst. Es schreibt über die Arr-API genau zwei Dinge, den Stammordner und den Pfad, und bittet dann um einen erneuten Scan.
niemals
Keine ausgehende Anfrage, die niemand wollte
Keine Telemetrie, keine Analytik, keine Update-Prüfung. Die einzigen ausgehenden Aufrufe gehen an Ihre Radarr- und Sonarr-Instanzen, an die Metadatenquellen, die Sie aktivieren (TMDb, AniList, Jikan, OMDb, TheTVDB), an Ihren OpenID-Connect-Anbieter, falls Sie einen nutzen, und an einen Benachrichtigungs-Webhook, falls Sie einen einrichten.
ja
Eine Umgebungsvariable
Auch unter einem Unterpfad. Setzen Sie ROUTARR_BASE_PATH=/routarr, und die API, die Oberfläche und die Webhook-URLs ziehen mit, ohne das Image neu zu bauen.
ein Pi genügt
Ein Image, eine Datei
Ein Docker-Image für amd64 und arm64, ein Pi oder ein N100 genügt also. Der Speicher ist eine einzelne SQLite-Datei. Es läuft kein Datenbankdienst.
Lesen Sie den Plan, behalten Sie, was Ihnen zusagt, und überlassen Sie den Rest den Regeln.
Was Sie gerade gesehen haben
Der globale Probelauf ist ab dem ersten Start aktiv, und fünf weitere Tore stehen dahinter.
Was jede Bedingung erwartet hat, was sie beobachtet hat, und die Regeln, die verloren haben.
amd64 und arm64, eine einzige SQLite-Datei, kein Datenbankdienst.