Qué vas a montar
Un stack completo donde pides una película o serie desde una interfaz tipo Netflix, se busca y descarga sola, y termina reproducible en streaming con subtítulos automáticos. El flujo final:
Jellyseerr (pides contenido)
↓
Prowlarr (busca en indexers)
↓
Radarr / Sonarr (gestiona películas / series)
↓
qBittorrent (descarga)
↓
/mnt/pve/data/shared/media/
↓
Jellyfin (reproduce) + Bazarr (subtítulos)
Requisitos previos:
- Proxmox con espacio suficiente en disco para media
- Un HDD o almacenamiento montado en el host, por ejemplo en
/mnt/pve/data - Conocimientos básicos de creación de LXC en Proxmox
Si ya tienes qBittorrent y Prowlarr montados de otro proyecto (por ejemplo, del stack de música o de libros), reutilízalos tal cual — es exactamente el mismo mecanismo, solo cambian los indexers y los clientes que se conectan.
Paso 1 — Preparar la carpeta compartida
En el host de Proxmox, crea la estructura de directorios para media y descargas:
mkdir -p /mnt/pve/data/shared/media/Movies
mkdir -p /mnt/pve/data/shared/media/TV
mkdir -p /mnt/pve/data/shared/downloads
Paso 2 — Crear los LXC
Crea un contenedor Debian/Ubuntu para cada servicio. La forma más rápida es usar plantillas de scripts comunitarios de Proxmox (busca “Proxmox VE Helper-Scripts”, tienen instaladores dedicados para Jellyfin, Radarr, Sonarr, qBittorrent y Prowlarr que hacen todo el proceso de instalación automáticamente). Si prefieres hacerlo manual, crea el LXC desde la interfaz de Proxmox con una plantilla Debian 12 y sigue con la instalación nativa de cada servicio según su documentación oficial.
Reparte IPs fijas para no perderte, por ejemplo:
| Servicio | LXC ID | IP |
|---|---|---|
| Jellyfin | 111 | 192.168.1.71 |
| Radarr | 112 | 192.168.1.72 |
| Sonarr | 113 | 192.168.1.73 |
| Jellyseerr | 114 | 192.168.1.74 |
| Bazarr | 115 | 192.168.1.75 |
Paso 3 — Bind mounts (acceso a la carpeta compartida)
El diálogo de “Mount Point” de la interfaz de Proxmox solo entiende volúmenes virtuales, no rutas del host. Para montar una carpeta real del host dentro de un LXC hay que editar directamente su fichero de configuración:
nano /etc/pve/lxc/111.conf
Añade al final (ajusta el ID en cada fichero):
mp0: /mnt/pve/data/shared/media,mp=/mnt/media
mp1: /mnt/pve/data/shared/downloads,mp=/mnt/downloads
Repite esto para Jellyfin (111), Radarr (112) y Sonarr (113) — los tres necesitan ver la misma carpeta de media y descargas. Reinicia el contenedor tras editar:
pct reboot 111
Paso 4 — Arreglar el DNS de cada LXC nuevo (hazlo ya, antes de que te dé problemas)
Cada LXC que crees en Proxmox hereda por defecto el DNS de Tailscale (100.100.100.100) si tienes Tailscale en el nodo, y ese DNS no resuelve dominios externos desde dentro del contenedor. El síntoma es un fallo de conexión genérico al intentar acceder a APIs externas, sin ninguna pista de que es un problema de DNS — así que ahórrate el rato de depuración y arréglalo de entrada en cada contenedor nuevo:
pct set 111 --nameserver "1.1.1.1 8.8.8.8"
pct set 112 --nameserver "1.1.1.1 8.8.8.8"
pct set 113 --nameserver "1.1.1.1 8.8.8.8"
Paso 5 — Instalar Jellyfin, Radarr y Sonarr
Dentro de cada LXC, instala el servicio correspondiente siguiendo su instalador oficial (o el script comunitario si lo usaste en el paso 2). Una vez arriba:
- Jellyfin (
http://192.168.1.71:8096) — asistente inicial, añade/mnt/media/Moviesy/mnt/media/TVcomo bibliotecas - Radarr (
http://192.168.1.72:7878) →Settings → Media Management→ carpeta raíz/mnt/media/Movies - Sonarr (
http://192.168.1.73:8989) → mismo proceso, carpeta raíz/mnt/media/TV
Paso 6 — Conectar Radarr y Sonarr a qBittorrent
En ambos, Settings → Download Clients → Add → qBittorrent, con la IP y puerto de tu instancia (en mi caso 192.168.1.68:8090).
Revisa el bind mount de qBittorrent con lupa. Si vienes de reutilizar el mismo qBittorrent de otro proyecto (por ejemplo libros), es fácil que el mount point siga apuntando a una subcarpeta antigua tipo /mnt/pve/data/shared/downloads/books en vez de a /mnt/pve/data/shared/downloads en general. Si eso pasa, todo lo que descarguen Radarr/Sonarr terminará metido dentro de esa subcarpeta equivocada sin que salte ningún error. Comprueba el fichero de configuración del LXC de qBittorrent:
cat /etc/pve/lxc/108.conf | grep mp
Y corrige la ruta si hace falta con sed o editando a mano.
Paso 7 — Prowlarr e indexers
Si Prowlarr ya está montado (de otro proyecto), solo tienes que:
- Conectar Radarr y Sonarr como aplicaciones en Prowlarr:
Settings → Apps → Add - Añadir indexers de vídeo — si vienes de un proyecto de libros o música, los que tengas configurados no sirven para esto
- Sincronizar: Prowlarr empuja los indexers a Radarr/Sonarr automáticamente
Sobre qué indexers funcionan: en mi caso, YTS funciona bien como indexer público de películas. EZTV está bloqueado por Cloudflare y necesita algo como FlareSolverr delante para funcionar (lo explico en el post del stack de música, donde lo monté para otro indexer con el mismo problema).
Paso 8 — Jellyseerr (pedir contenido con interfaz tipo Netflix)
Si usas Plex, la opción estándar es Overseerr. Si usas Jellyfin, Overseerr no te sirve — es exclusivo de Plex. La alternativa es Jellyseerr, el fork pensado para Jellyfin. En mi caso no había binarios prácticos disponibles y tuve que compilarlo desde el código fuente siguiendo las instrucciones de su repositorio (necesita Node.js y yarn).
Una vez arriba (http://192.168.1.74:5055), conéctalo a tu instancia de Jellyfin, y luego a Radarr y Sonarr en Settings → Services, para que las peticiones se traduzcan automáticamente en tareas de descarga.
Paso 9 — Bazarr (subtítulos automáticos)
Instala Bazarr (http://192.168.1.75:6767), conéctalo a Radarr y Sonarr en Settings → Radarr / Settings → Sonarr, y añade proveedores de subtítulos (OpenSubtitles es el más habitual) en Settings → Providers.
Extras opcionales
- Tema visual en Jellyfin: el script oficial de setup de Jellyfin permite instalar temas como Abyss para cambiar el aspecto por defecto
- Intro Skipper: plugin de Jellyfin que detecta y permite saltar automáticamente las intros repetidas en series
Checklist final
- Carpeta
shared/mediacreada con subcarpetas Movies/TV - Bind mounts configurados en los tres LXC principales
- DNS corregido en cada LXC nuevo
- Radarr y Sonarr apuntando a las carpetas raíz correctas
- Descarga conectada a qBittorrent (con la ruta de mount verificada)
- Indexers de vídeo añadidos en Prowlarr
- Jellyseerr conectado a Jellyfin, Radarr y Sonarr
- Bazarr descargando subtítulos automáticamente
Siguientes pasos
Si quieres el mismo tipo de automatización pero para música, tengo el proceso completo (con VPN incluida para saltarte bloqueos de ISP) en el post del servidor de música.