JFP
Inicio CV Blog
Volver al blog
homelab

De cartelera a mi pantalla: así monté mi streaming privado, casero y automático

Trece contenedores para automatizar series, películas, música y libros: Sonarr, Radarr, Jackett, qBittorrent y compañía, más Jellyfin como servidor de streaming y la migración de Jellyseerr a Seerr.

De cartelera a mi pantalla: así monté mi streaming privado, casero y automático

Con la base ya montada (Docker en su LXC, Portainer y Watchtower), tocaba desplegar el primer stack de servicios de verdad. Y este fue grande: un conjunto de herramientas conocidas como el "stack arr" (por el sufijo que comparten casi todas), dedicadas a automatizar la búsqueda, descarga y organización de series, películas, música, libros y audiolibros.

Qué hace cada servicio

La mayoría de estos contenedores los desplegué de golpe, el mismo día, el 6 de abril de 2025. Todos corren dentro del mismo LXC de Docker, como un stack en Portainer:

  • Sonarr — gestiona la biblioteca de series: busca episodios nuevos, decide qué versión descargar según el perfil de calidad configurado, y renombra/organiza los archivos.
  • Radarr — lo mismo que Sonarr, pero para películas.
  • Lidarr — lo mismo, pero para música.
  • Readarr — lo mismo, pero para libros.
  • Bazarr — busca y descarga subtítulos automáticamente para lo que gestionan Sonarr y Radarr.
  • Jackett — centraliza el acceso a distintos indexadores (sitios donde se buscan los torrents) y los expone de forma uniforme para que Sonarr, Radarr, etc. puedan consultarlos.
  • FlareSolverr — resuelve automáticamente las protecciones anti-bot de Cloudflare que tienen algunos indexadores, para que Jackett pueda seguir accediendo a ellos.
  • qBittorrent — el cliente que se encarga de descargar los torrents una vez que Sonarr/Radarr/etc. deciden qué descargar.
  • Unpackerr — descomprime automáticamente los archivos .rar/.zip que llegan de las descargas, sin tener que hacerlo a mano. Este lo añadí unos días después que el resto, cuando me di cuenta de que hacía falta.
  • Recyclarr — sincroniza perfiles de calidad y formatos personalizados recomendados por la comunidad hacia Sonarr y Radarr, para no tener que configurarlos todos manualmente.
  • Seerr — la interfaz donde se piden series y películas nuevas (más abajo cuento la historia de este).
  • Audiobookshelf — servidor de audiolibros y podcasts, con su propia app para escuchar en el móvil.

Cada uno tiene su propio puerto publicado en el LXC de Docker, por ejemplo Sonarr en el 8989, Radarr en el 7878, Jackett en el 9117, y así con el resto — todos accesibles desde la interfaz web de cada uno para configurarlos.

<!-- TODO IMAGEN 1: Captura del dashboard de Portainer mostrando la lista completa de contenedores del stack, con sus estados "running". Cuidado con tapar IPs internas si prefieres no mostrarlas. --> <!-- TODO IMAGEN 1b (opcional): Una o dos capturas de la interfaz de alguno de los servicios individuales (por ejemplo Sonarr o Radarr con la biblioteca cargada), para que el lector que no los conozca vea qué aspecto tienen. No hace falta una de cada, con un par representativas basta. -->

Jellyfin: el servidor de streaming

El último eslabón de la cadena es Jellyfin, el servidor de streaming donde realmente se ve todo lo que el resto de servicios ha descargado y organizado — el equivalente a tener tu propio Netflix con tu propia biblioteca.

Al principio, Jellyfin corría también como un contenedor más dentro de este mismo stack de Docker (se desplegó el mismo día que el resto, el 6 de abril de 2025), junto a todo lo demás. Con el tiempo lo saqué a su propio LXC independiente (el 201), separado del resto — dedicarle un contenedor propio permite gestionar sus recursos de forma aislada sin que compita por CPU o memoria con el resto del stack, y facilita hacer mantenimiento de uno sin tocar el otro.

Así quedó configurado ese LXC:

Recurso Asignado
CPU 2 vCPUs
RAM 3 GB
SWAP 1 GB
Disco ~20 GB
Puerto 8096
<!-- TODO IMAGEN 2: Captura de la biblioteca de Jellyfin (o de la pantalla de inicio), mostrando el aspecto real de la interfaz. -->

Actualización (julio 2026): de Jellyseerr a Seerr

Cuando monté el stack originalmente, usaba Jellyseerr para gestionar las peticiones de contenido nuevo (la típica pantalla donde pides "quiero ver tal serie" y Sonarr/Radarr se ponen a buscarla). El 10 de julio de 2026, los propios desarrolladores de Jellyseerr recomendaron migrar a su sucesor, Seerr, así que hice el cambio.

El contenedor de Jellyseerr se quedó ahí parado (no lo he borrado todavía, por si acaso), y Seerr ocupó su lugar con la configuración migrada. Es un cambio sencillo de contar pero real: a veces migrar un servicio no es porque uno quiera, sino porque el proyecto original te lo pide.

<!-- TODO IMAGEN 3 (opcional): Captura de la interfaz de Seerr, si quieres mostrar cómo quedó tras la migración. -->

El resultado

Con estos trece contenedores trabajando juntos (más Jellyfin en su LXC aparte), el flujo queda así: pido algo nuevo en Seerr → Sonarr o Radarr lo buscan a través de Jackett (con ayuda de FlareSolverr si el indexador tiene protección anti-bot) → qBittorrent lo descarga → Unpackerr lo descomprime si hace falta → Bazarr le busca subtítulos → y todo queda listo y organizado para verse en Jellyfin. Todo automático, sin tener que tocar nada manualmente salvo pedir lo que quiero ver.

Tags

#sonarr #radarr #jellyfin #docker #homelab #media-server