Sincronizar
Lee películas, series, etiquetas y carpetas raíz de cada Radarr y Sonarr que conecte. Una respuesta vacía nunca se toma por un borrado masivo.
Radarr, Sonarr
nada
Routarr lee sus bibliotecas, enriquece cada título desde las fuentes de metadatos que usted ordena y decide a qué carpeta raíz pertenece. Usted ve el plan entero primero, y solo escribe cuando usted lo dice.
Autoalojado. Un contenedor. La simulación sigue activa hasta que usted la desactive.
| Título | Por la regla | Destino | Puerta | Estado |
|---|---|---|---|---|
| #10Animación japonesa | /movies/anime | RADARR | propuestoRadarr | |
| Por qué✓el género contiene Animation · observado Animation, Sci-Fi✓el idioma es ja · observado ja✓salvo que la clasificación sea G · observado R, la exclusión no se aplicóla regla #10 gana por prioridad · #20 y #30 no se consultan | ||||
| #20Conciertos | /movies/concerts | RADARR | propuestoRadarr | |
| Por qué✗#10 el género contiene Animation · observado Music, Documentary✓#20 el género contiene Music · observado Music, Documentary✓#20 la palabra clave contiene concert · observado concert, live | ||||
| #10Animación japonesa | /tv/anime | SONARR | confirmarSonarr | |
| Por qué✓el género contiene Animation · observado Animation, Sci-Fi✓el idioma es ja · observado jaespera su confirmación · /tv/anime tiene 38 GB libres, la serie pesa 41 GB | ||||
| #30Familia & infantil | /movies/kids | RADARR | propuestoRadarr | |
| Por qué✗#10 el idioma es ja · observado en✗#20 el género contiene Music · observado Family, Comedy✓#30 el género contiene Family · observado Family, Comedy | ||||
| ninguna regla coincide | /movies | RADARR | se quedaRadarr | |
| Por qué✗#10 el género contiene Animation · observado Drama, Music✗#20 la palabra clave contiene concert · observado ninguna✗#30 el género contiene Family · observado Drama, Music | ||||
| #20Conciertos | /movies/concerts | RADARR | en su sitioRadarr | |
| Por qué✓#20 el género contiene Music · observado Music, Documentaryya en /movies/concerts · nada que mover | ||||
Gana la primera regla que coincide. Las exclusiones pueden vetar. Todo queda explicado.
En desarrollo activo. El motor de reglas y las salvaguardas son estables. La interfaz seguirá cambiando.
Routarr es esa capa de decisión que falta: un único sitio donde vive la lógica, usando las carpetas que sus Arr ya tienen, y, sobre un webhook, decidiendo antes incluso de que la descarga llegue, cuando la carpeta aún está vacía y nada tiene que moverse.
Lo que la carga útil ya contieneDónde aterriza
leído por ninguna reglauna carpeta, cinco películas
Leído por RoutarrDónde aterriza
No se escribe nada hasta que una acción explícita lo pide, y el interruptor de simulación global bloquea las escrituras en el servidor, haga lo que haga la interfaz.
El pasoLeeEscribe
Lee películas, series, etiquetas y carpetas raíz de cada Radarr y Sonarr que conecte. Una respuesta vacía nunca se toma por un borrado masivo.
Radarr, Sonarr
nada
Géneros, idioma y clasificación llegan gratis con la sincronización. Añada TMDb para palabras clave y país: una llamada por título, en caché, sin duplicados, con concurrencia acotada.
TMDb, AniList, OMDb…
su propia caché
Las reglas corren por prioridad ascendente. Gana la primera que coincide. Las exclusiones vetan una regla que por lo demás habría coincidido. Lo que no coincide cae en su categoría por defecto.
sus reglas
un plan que puede leer
Los movimientos se agrupan por instancia y carpeta de destino, se escriben por la API de los Arr y luego se reanalizan. Todo movimiento aplicado puede revertirse.
el plan que usted aprobó
su biblioteca
un solo paso escribe en su bibliotecay el interruptor global de simulación bloquea ese en el servidor

Combine condiciones con TODAS o CUALQUIERA, añada exclusiones explícitas, ordene las reglas por prioridad. Género, palabra clave, idioma original, país, clasificación, año, estado, carpeta actual, título, identificadores externos, antigüedad, más señales que solo tiene su Arr: etiquetas, el tipo de serie de Sonarr, tamaño en disco y número de temporadas.
encamina a anime
TodasAl menos una
original_languagees uno deja
genre_containscontieneAnimation
certification_ines uno deGUTV-Y
Las exclusiones son la razón de que esto funcione. «Animación japonesa» se tragaría
Mi vecino Totoro. La exclusión deliberada de las clasificaciones para todos los públicos lo entrega
a kids en su lugar, y la interfaz lo dice.
Una clasificación que no puede auditar es una clasificación en la que no puede confiar. Routarr registra, condición a condición, qué se esperaba y qué se observó, tanto para la regla ganadora como para cada regla que no ganó.
Akira (1988) · todas las reglas que lo examinaron
cumplida — original_languageesperado ja
observado ja
cumplida — genre_containsesperado Animation
observado Animation, Science Fiction
cumplida — certification_inesperado not G, U, TV-Y
observado 15
no cumplida — genre_containsesperado Documentary, Music
observado Animation, Science Fiction
no cumplida — certification_inesperado G, U, TV-Y
observado 15
cumplida — genre_containsesperado Animation
observado Animation, Science Fiction
El motor nunca escribe prosa: emite claves y parámetros, y el texto se compone en su idioma en el momento de mostrarlo, las justificaciones están traducidas a los 26 idiomas, no congeladas en inglés en el instante en que se calcularon.

Routarr mueve archivos en disco. Cada una de estas puertas está activa por defecto, se ejecutan en este orden, y la primera que objeta detiene a las demás. La primera por sí sola basta para dejar toda la aplicación en solo lectura.
Activa desde el primer arranque. Mientras lo esté, no se escribe nada, pulse lo que pulse y esté activada la automatización que esté.
Un techo estricto sobre cuántos elementos puede tocar una sola aplicación. Reclasificar una biblioteca entera es una acción aparte y deliberada.
Un destino que no respondió la última vez que alguien miró. Un NAS en reposo no se distingue de un disco muerto, así que esta puerta pregunta en vez de negarse.
El plan pesado contra el espacio libre que la sincronización ya registró, contando solo los bytes que cambian de sistema de archivos.
Por encima de un número que usted elige se exige una segunda confirmación explícita, reconocida por un código de error estable, no por comparar texto en inglés.
Cada decisión se vuelve a comprobar contra las reglas y la biblioteca del momento. Una propuesta que las reglas ya no justifican se rechaza, no se ejecuta.
se niegadetiene la aplicaciónpreguntaplantea una pregunta con su propio nombre, que usted responde
La aplicación automática existe, y viene desactivada. Cuando se activa toca solo títulos sin archivos en disco todavía, el caso en que cambiar de carpeta es una escritura de metadatos y nada se mueve. Todo lo ya descargado sigue en la cola humana.
Routarr nunca crea una estructura de biblioteca. Lee las carpetas raíz que Radarr y Sonarr declaran, y donde quiere un destino que ellos no listan lo escribe aquí y queda marcado como tal. En ambos casos lo asocia a una categoría que usted nombró, y una carpeta declarada toma su espacio libre y su accesibilidad de la carpeta sincronizada bajo la que se encuentra.
RutaInstanciaOrigenEspacio libreCategoría
/moviesRadarrsincronizado2.4 TiBstandard
/movies/animeRadarrdeclarado2.4 TiBanime
/movies/kidsRadarrdeclarado2.4 TiBkids
/movies/concertsRadarrdeclarado2.4 TiBconcerts
/tvSonarrsincronizado6.1 TiBstandard
/tv/animeSonarrsincronizado6.1 TiBanime
/mnt/archiveSonarrsincronizadoinaccesiblesin categoría
siete destinos en dos instanciastres declarados aquí, cuatro leídos de los Arrs
El espacio libre y la accesibilidad vienen directos del Arr. Dos carpetas que reclamen la misma categoría en una instancia se rechazan en lugar de resolverse en silencio, y una categoría que ninguna carpeta proporciona se avisa antes de que pueda descartar sus medios sin que nadie lo note.

Un panel sobre todas las instancias conectadas: qué está registrado, qué está enriquecido, qué le espera.

Ficha técnicav0.1.0
cualquier númeroVarias instancias
Tantos servidores Radarr y Sonarr como quiera, cada uno con su intervalo de sincronización, sus carpetas y sus asignaciones.
una URL secreta por instanciaWebhooks en tiempo real
Una URL secreta por instancia. Las altas nuevas se sincronizan, enriquecen y evalúan de inmediato, no en el siguiente sondeo.
prevalece sobre toda reglaForzar y revertir
Fije un título a una categoría y el motor deja de discutir, un forzado gana a cualquier regla. Todo movimiento aplicado puede deshacerse desde el historial.
/metrics, la misma clave APIMétricas de Prometheus
Tamaño de la biblioteca, decisiones por categoría y estado, salud de las instancias y estado de las salvaguardas, tras la misma clave de API.
un solo webhook JSON genéricoNotificaciones salientes
Un webhook JSON genérico, Discord, Gotify, ntfy, Apprise, disparado en cada cambio de estado, nunca en bucle.
AES-256-GCM en reposoConfiguración portable, claves selladas
Reglas, categorías, asignaciones y forzados se exportan como JSON y viajan entre instalaciones. Las claves de API de los Arr se cifran con AES-256-GCM y nunca salen.
docker compose up.Una imagen lleva el servidor y la interfaz, para amd64 y arm64, un NAS Synology o QNAP, Unraid, TrueNAS, una Raspberry Pi o un VPS corriente. Guarde el archivo compose, arránquelo, y el primer inicio no necesita ningún archivo de configuración.
mkdir -p data && sudo chown 1000:1000 data
El contenedor corre como uid 1000 y renuncia a todas sus capacidades, así que el volumen debe pertenecerle.
docker compose up -d
Una sola imagen, servidor e interfaz juntos. No hay nada más que instalar.
docker exec routarr cat /data/routarr.api_key
La clave se genera en el primer arranque y se escribe junto a la base de datos. El registro la muestra una vez, el archivo la conserva.
http://localhost:9876
La simulación global ya está activa. No se puede escribir nada hasta que la desactive.
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:trueRespalde routarr.db y routarr.key juntos.
Sin la clave, las credenciales de los Arr guardadas no se pueden recuperar.
Después: conecte sus Arr, asigne sus carpetas a categorías, escriba una regla y previsualícela, lance una simulación, y desactive la simulación global solo cuando el plan le convenza.
La mayoría de las respuestas de abajo son no, y es lo más útil que esta sección tiene que decir.
La inquietudLa respuestaQué lo garantiza
solo si lo pide dos veces
La simulación global, activa por defecto
La simulación global está activa desde el primer arranque, la opción de mover archivos en disco viene desmarcada, y aplicar por encima de un umbral exige una confirmación explícita. Sin la opción de mover, Routarr solo reorienta la entrada de la biblioteca y deja los archivos donde están.
no
La carpeta raíz, no el nombre
Un movimiento cambia la carpeta raíz por encima de su título y conserva el nombre de la carpeta tal cual, de modo que una biblioteca de Plex o Jellyfin que apunte ahí sigue funcionando.
no
Los Arrs son una fuente propia
Radarr y Sonarr son una fuente de metadatos por derecho propio, ya informan de géneros, idioma original y clasificación por edades, y Routarr los lee en la misma respuesta con la que sincroniza la biblioteca. Para palabras clave y país de origen, AniList tampoco necesita clave. TMDb, OMDb y TheTVDB están ahí si los quiere. Las fuentes son una lista ordenada: usted decide cuál gana cuando discrepan.
no
Dos campos, por su propia API
Deliberadamente no lo intenta. Routarr nunca gestiona descargas, indexadores ni la biblioteca en sí. Escribe exactamente dos cosas a través de la API de los Arr, la carpeta raíz y la ruta, y después pide un reanálisis.
nunca
Ninguna petición saliente que nadie pidió
Sin telemetría, sin analítica, sin comprobación de actualizaciones. Las únicas llamadas salientes van a sus instancias de Radarr y Sonarr, a las fuentes de metadatos que active (TMDb, AniList, Jikan, OMDb, TheTVDB), a su proveedor de OpenID Connect si usa uno, y a un webhook de notificación si lo configura.
sí
Una variable de entorno
Incluso bajo una subruta. Defina ROUTARR_BASE_PATH=/routarr y la API, la interfaz y las URL de webhook se mueven con ella, sin reconstruir la imagen.
basta una Pi
Una imagen, un archivo
Una imagen Docker para amd64 y arm64, así que basta con una Pi o un N100. El almacenamiento es un único archivo SQLite. No hay ningún servicio de base de datos que mantener.
Lea el plan, quédese con lo que le convenza y deje el resto a las reglas.
Lo que se le acaba de mostrar
La simulación global está activa desde el primer arranque, y cinco puertas más están detrás.
Qué esperaba cada condición, qué observó, y las reglas que no ganaron.
amd64 y arm64, un solo archivo SQLite, ningún servicio de base de datos que ejecutar.