Media Stack - Jellyfin + *ARR Stack en Docker - Servidor media automatizado autohospedado. Todas tus series y pelis favoritas GRATIS bajo demanda.

Media Stack COMPLETO | 9 Contenedores | Docker | Local

Media Stack Completo en Docker: Jellyfin + Sonarr + Radarr + Bazarr + qBittorrent + Jackett + Flaresolverr + Jellyseerr + Wizarr (alternativa Plex, Netflix autohospedado) 🎬🍿

Stack media completo automatizado autohospedado con 9 contenedores. Jellyfin streaming. Sonarr + Radarr TV/movies auto-download. Bazarr subtítulos automáticos. Jackett indexer manager. Flaresolverr cloudflare bypass. qBittorrent torrents. Jellyseerr request manager. Wizarr setup wizard. Multi-dispositivo local. Zero cloud. MIT/GPL open source.

¿Qué es Media Stack Completo?


Media Stack es un stack completo de Docker Compose con 9 contenedores que automatiza toda la pipeline de servidor media: indexers con Jackett, cloudflare bypass con Flaresolverr, descarga automática películas/series vía torrents, organización inteligente de archivos, subtítulos automáticos, interface web para requests (Jellyseerr), wizard setup (Wizarr), y streaming vía Jellyfin a múltiples dispositivos. Es la solución definitiva profesional para homelabs multimedia.

Propuesta clave: Stack media enterprise-grade. Jellyfin streaming open source (sin paywalls). Sonarr/Radarr auto-download + organización. Bazarr subtítulos multi-idioma. Jackett indexer aggregator (100+ trackers). Flaresolverr cloudflare bypass. qBittorrent high-speed torrents. Jellyseerr user requests interface. Wizarr automated setup wizard. TRaSH Guides folder structure (hardlinks, atomic moves). Single source of truth /mnt/media. Multi-dispositivo acceso local (web, apps Jellyfin móvil/TV). Production-ready. Zero paywalls. Orquestación Docker Compose. MIT/GPL open source.

Para homelabs profesionales: Servidor media completo. Descarga auto. Streaming multi-dispositivo. Gestión requests. Control total. Zero suscripciones.

Características principales

Jellyfin streaming

Media server open source. Sin paywalls. Múltiples dispositivos. Transcode configurables.

Sonarr TV automation

Auto-search, auto-download series. Organización inteligente. Manual override. Notificaciones.

Radarr movie automation

Auto-search, auto-download películas. Quality profiles. Organización automática.

Jackett indexer manager

100+ trackers agregados. API endpoint unificado. Sonarr/Radarr integración directa.

Flaresolverr cloudflare

Bypass automático cloudflare challenges. Jackett + Flaresolverr integración.

Bazarr subtítulos auto

Auto-download sub multi-idioma. OpenSubtitles, TVsubtitles. Por película/serie.

qBittorrent integrated

Torrent client web UI. Sonarr/Radarr send torrents auto. Speed control. Seed policies.

Jellyseerr requests

Users request películas/series. Aprobación automática. Integración Sonarr/Radarr.

Wizarr setup wizard

Setup intuitivo guiado. Configuración paso-a-paso. Usuarios multi-familia.

Requisitos del sistema

  • Docker & Docker Compose v2+
  • 6 GB - 16 GB RAM mínimo (9 contenedores simultáneos)
  • 50 GB - 10+ TB espacio disco en /mnt/media (según librería media)
  • /mnt/media directorio accesible y con permisos RW
  • Puertos TCP disponibles: 8096, 8989, 7878, 6767, 6969, 9117, 8191, 5055, 5000
  • CPU: 4+ cores (6+ si transcoding NVIDIA/Intel)
  • Acceso internet (indexers, metadata, subtítulos, cloudflare bypass)
  • Opcional: NVIDIA GPU (transcoding NVENC) o Intel Quick Sync
Nota espacio: Media Stack consume mucho disco. Asegúrate /mnt/media tenga espacio suficiente (calcula 1-3GB por película, 2-5GB por temporada serie).
Performance: 9 contenedores requieren recursos. 6GB+ RAM recomendado. Usa hardlinks (zero duplication). TRaSH Guides folder structure optimiza categorización.

Estructura directorios /mnt/media

Todos los datos van en /mnt/media, sin volúmenes Docker separados:

/mnt/media/ ├── jellyfin/ # Config Jellyfin ├── jellyseerr/ # Config Jellyseerr (requests) ├── wizarr/ # Config Wizarr (setup) ├── sonarr/ # Config Sonarr ├── radarr/ # Config Radarr ├── bazarr/ # Config Bazarr ├── jackett/ # Config Jackett (indexers) ├── flaresolverr/ # Config Flaresolverr (cloudflare) ├── qbittorrent/ # Config qBittorrent ├── movies/ # Películas (Jellyfin + Radarr) ├── series/ # Series (Jellyfin + Sonarr) └── downloads/ # Descargas qBittorrent

Instalación con Docker Compose

Paso 1: Preparar estructura directorios

# Crear estructura en /mnt/media sudo mkdir -p /mnt/media/{jellyfin,jellyseerr,wizarr,sonarr,radarr,bazarr,jackett,flaresolverr,qbittorrent,movies,series,downloads} # Permisos (reemplaza 1000:1000 con tus UID:GID si es diferente) sudo chown -R 1000:1000 /mnt/media sudo chmod -R 755 /mnt/media # Verificar ls -la /mnt/media

Paso 2: Crear docker-compose.yml

mkdir -p ~/media-stack && cd ~/media-stack cat > docker-compose.yml << 'DOCKER' version: '3.8' services: flaresolverr: image: ghcr.io/flaresolverr/flaresolverr:latest container_name: flaresolverr restart: unless-stopped ports: - "8191:8191" environment: - TZ=Europe/Madrid jackett: image: lscr.io/linuxserver/jackett:latest container_name: jackett restart: unless-stopped ports: - "9117:9117" environment: - PUID=1000 - PGID=1000 - TZ=Europe/Madrid volumes: - /mnt/media/jackett:/config depends_on: - flaresolverr jellyfin: image: jellyfin/jellyfin:latest container_name: jellyfin restart: unless-stopped ports: - "8096:8096" environment: - PUID=1000 - PGID=1000 - TZ=Europe/Madrid volumes: - /mnt/media/jellyfin:/config - /mnt/media/movies:/movies - /mnt/media/series:/series jellyseerr: image: fallenbagel/jellyseerr:latest container_name: jellyseerr restart: unless-stopped ports: - "5055:5055" environment: - TZ=Europe/Madrid - LOG_LEVEL=debug volumes: - /mnt/media/jellyseerr:/app/config depends_on: - jellyfin wizarr: image: ghcr.io/wizarrrr/wizarr:latest container_name: wizarr restart: unless-stopped ports: - "5000:5000" environment: - TZ=Europe/Madrid volumes: - /mnt/media/wizarr:/data sonarr: image: lscr.io/linuxserver/sonarr:latest container_name: sonarr restart: unless-stopped ports: - "8989:8989" environment: - PUID=1000 - PGID=1000 - TZ=Europe/Madrid volumes: - /mnt/media/sonarr:/config - /mnt/media/series:/tv - /mnt/media/downloads:/downloads depends_on: - qbittorrent - jackett radarr: image: lscr.io/linuxserver/radarr:latest container_name: radarr restart: unless-stopped ports: - "7878:7878" environment: - PUID=1000 - PGID=1000 - TZ=Europe/Madrid volumes: - /mnt/media/radarr:/config - /mnt/media/movies:/movies - /mnt/media/downloads:/downloads depends_on: - qbittorrent - jackett bazarr: image: lscr.io/linuxserver/bazarr:latest container_name: bazarr restart: unless-stopped ports: - "6767:6767" environment: - PUID=1000 - PGID=1000 - TZ=Europe/Madrid volumes: - /mnt/media/bazarr:/config - /mnt/media/movies:/movies - /mnt/media/series:/tv depends_on: - sonarr - radarr qbittorrent: image: lscr.io/linuxserver/qbittorrent:latest container_name: qbittorrent restart: unless-stopped ports: - "6969:6969" - "6969:6969/udp" environment: - PUID=1000 - PGID=1000 - TZ=Europe/Madrid - WEBUI_PORT=6969 volumes: - /mnt/media/qbittorrent:/config - /mnt/media/downloads:/downloads DOCKER

Paso 3: Iniciar servicios

docker compose up -d # Espera ~20 segundos para que todos los contenedores inicien docker compose ps # Debería mostrar todos en estado "Up"

Acceder a los servicios (LOCAL)

Una vez ejecutes docker compose up -d, accede desde tu red local:

📺 Jellyfin (streaming): http://localhost:8096
🎬 Sonarr (TV automation): http://localhost:8989
🎞️ Radarr (movies automation): http://localhost:7878
📝 Bazarr (subtítulos): http://localhost:6767
🔍 Jackett (indexers): http://localhost:9117
☁️ Flaresolverr (cloudflare): http://localhost:8191
🔽 qBittorrent (torrents): http://localhost:6969
🎥 Jellyseerr (requests): http://localhost:5055
🧙 Wizarr (setup): http://localhost:5000

💡 Desde otros dispositivos: Usa la IP de tu servidor en lugar de localhost:
http://192.168.1.100:8096 (reemplaza 192.168.1.100 con tu IP)
Para obtener tu IP: hostname -I

Primeros pasos - Setup completo

1. Setup Wizarr (setup intuitivo) - PRIMERO

  1. Abre http://localhost:5000
  2. Sigue wizard: lenguaje, región, usuarios multi-familia
  3. Configura conexión Jellyfin (URL: http://jellyfin:8096)
  4. Wizarr guía resto setup automático

2. Setup Jellyfin (media server)

  1. Abre http://localhost:8096
  2. Setup wizard: lenguaje, usuario admin, contraseña
  3. Agrega librerías:
    • Películas: /movies
    • Series: /series
  4. Scan libraries (detecta contenido automático)
  5. Configura transcoding (Intel Quick Sync, NVIDIA NVENC si disponible)

3. Setup Flaresolverr (cloudflare bypass)

  1. Flaresolverr se auto-inicia en http://localhost:8191
  2. Solo verifica conectividad: curl http://localhost:8191/health
  3. Ya está listo para Jackett

4. Setup Jackett (indexers)

  1. Abre http://localhost:9117
  2. Agraga trackers: click "+", busca torrentsites favoritos
  3. Configura FlareSolverr: Settings → Flaresolverr URL = http://flaresolverr:8191
  4. Copiar API key Jackett (lo usarás en Sonarr/Radarr)

5. Setup Sonarr (TV automation)

  1. Abre http://localhost:8989
  2. Settings → Media Management: Add Root Folder → /tv
  3. Settings → Download Clients: qBittorrent (http://qbittorrent:6969)
  4. Settings → Indexers: Agregar desde Jackett (API key)
  5. Settings → Connect: notificaciones (Telegram, Discord, etc)

6. Setup Radarr (Movie automation)

  1. Abre http://localhost:7878
  2. Settings → Media Management: Add Root Folder → /movies
  3. Settings → Download Clients: qBittorrent (http://qbittorrent:6969)
  4. Settings → Indexers: Agregar desde Jackett (API key)
  5. Settings → Quality: definir perfiles (1080p, 2K, 4K)

7. Setup Bazarr (subtítulos automáticos)

  1. Abre http://localhost:6767
  2. Settings → Languages: Selecciona idiomas (ej: Spanish, English)
  3. Settings → Providers: OpenSubtitles, TVsubtitles (agregar API keys)
  4. Settings → Sonarr/Radarr: conecta APIs (sync automático)
  5. Bazarr baja subs automático para nuevas series/películas

8. Setup Jellyseerr (requests)

  1. Abre http://localhost:5055
  2. Setup wizard: Jellyfin URL (http://jellyfin:8096) + credenciales
  3. Conecta Sonarr/Radarr APIs
  4. Usuarios ahora pueden hacer requests desde Jellyseerr

9. Flujo automático: Buscar + agregar serie

  1. Sonarr → Series → Search (ej: "Breaking Bad")
  2. Selecciona resultado
  3. Profile (calidad), Folder (/tv)
  4. Add Series → Sonarr auto-busca + descarga via Jackett
  5. qBittorrent descarga
  6. Bazarr descarga subs automático
  7. Jellyfin detecta automático después descarga

10. Ver contenido en Jellyfin (streaming)

  1. Jellyfin → Movies / Series
  2. Selecciona película/serie
  3. Play → streaming directo en browser o apps
  4. Compatible: Jellyfin apps móvil, TV, Roku, etc

Casos de uso

  • Reemplazo Plex/Netflix: Servidor media autohospedado profesional. Control total. Sin suscripciones.
  • Descarga automática: Configura Sonarr/Radarr una vez. Auto-descarga nuevos episodios/películas desde Jackett.
  • Multi-dispositivo: Ver desde TV, móvil, tablet. Jellyfin apps nativas.
  • User requests: Multi-familia. Usuarios request películas/series desde Jellyseerr. Auto-aprobadas.
  • Homelabs profesionales: Raspberry Pi, server, NAS. Stack completo production-ready Docker.

Gestión y mantenimiento

Ver estado de todos contenedores

docker compose ps

Ver logs en tiempo real

docker compose logs -f docker compose logs -f jellyfin docker compose logs -f sonarr

Restart servicios

docker compose restart docker compose restart jellyfin sonarr radarr

Actualizar imágenes

docker compose pull docker compose up -d

Monitorear consumo

docker stats # Típicamente (9 contenedores): # jellyfin: 300-600MB RAM # jellyseerr: 100-200MB RAM # wizarr: 50-100MB RAM # sonarr: 150-300MB RAM # radarr: 150-300MB RAM # bazarr: 100-200MB RAM # jackett: 200-400MB RAM # flaresolverr: 200-400MB RAM # qbittorrent: 200-500MB RAM # TOTAL: 1.5GB - 3.5GB RAM

Detener stack completo

docker compose down # Los datos persisten en /mnt/media

Backup configuración

tar -czf media-stack-backup-$(date +%Y%m%d).tar.gz /mnt/media

Comparativa con alternativas

vs Plex

Media Stack gana: Open source, gratuito, sin paywalls transcoding, indexers integrados (Jackett), control total datos. Plex gana: UI más pulida, soporte profesional.

vs Emby

Media Stack gana: Gratuito, open source, comunidad, stack completo (*arr integrados). Emby gana: Features premium, interface exclusiva.

vs Netflix/Plex remoto

Media Stack gana: Costo cero, control total, sin paywalls, indexers integrados. Netflix gana: Contenido autorizado, quality 4K.

Mejor para: Homelabs profesionales. Control total. Stack completo. Costo cero. Multi-dispositivo local. Enterprise-grade.

Comentarios

Entradas populares de este blog

Solución al error: «user is not in the sudoers file» en Debian

NAS SYNOLOGY DSM 7.1 en VMware ESXI - Guía instalación y configuración Synology DSM 7.1 en VMWARE

Multisesión RDP en Windows 10 Pro