Navigation
On this page

Docker Compose

Desglose completo de los servicios, puertos, volumenes y configuracion de red del stack de Mediabox MCP.

Mediabox MCP se ejecuta como un stack multi-contenedor con Docker Compose. Esta pagina explica cada servicio, su configuracion y como personalizar el stack.

Resumen de Servicios

ServicioImagenPuerto HostDescripcion
Jellyfinlscr.io/linuxserver/jellyfin8096Servidor de streaming multimedia
MCP Serverghcr.io/juancmpdev/mediabox-mcp3000Servidor de herramientas de IA (30 herramientas MCP)
Sonarrlscr.io/linuxserver/sonarr8989Gestion de series de TV
Radarrlscr.io/linuxserver/radarr7878Gestion de peliculas
qBittorrentlscr.io/linuxserver/qbittorrent8085Cliente BitTorrent
PyLoadlscr.io/linuxserver/pyload-ng8001Gestor de descargas directas
Prowlarrlscr.io/linuxserver/prowlarr9696Administrador de indexadores
FlareSolverrghcr.io/flaresolverr/flaresolverr8191Proxy para evadir proteccion Cloudflare

Servicios Opcionales

ServicioImagenPuertoDescripcion
Bot de Telegramghcr.io/juancmpdev/mediabox-telegramInterfaz de Telegram para gestionar contenido multimedia por chat. Se habilita durante la configuracion del asistente.
Bazarrlscr.io/linuxserver/bazarr6767Descargador automatico de subtitulos. Se habilita durante la configuracion del asistente.

Caddy (proxy inverso) y Cloudflared (cliente de tunnel) son agregados por el asistente al seleccionar los modos de despliegue VPS o Tunnel respectivamente. No estan presentes en el docker-compose.yml base.

El Compose generado usa imagenes GHCR por defecto y lee el tag desde IMAGE_TAG (por ejemplo 2.2.0-beta.0, 2.2, latest o sha-<commit>). Cuando el CLI corre en modo local-build, compila el servidor MCP desde packages/mcp-server/Dockerfile y el bot de Telegram desde packages/mcp-telegram-client/Dockerfile dentro del monorepo.

Desde 2.2, los tags de release publican imagenes multi-arch amd64 y arm64 en GHCR antes de publicar el paquete CLI. Si un Docker pull falla por autenticacion, verifica que el package de GitHub este publico.

Puertos

En modo local, los servicios son accesibles directamente en sus puertos host:

http://localhost:8096   # Jellyfin
http://localhost:3000   # MCP Server
http://localhost:8989   # Sonarr
http://localhost:7878   # Radarr
http://localhost:8085   # qBittorrent
http://localhost:8001   # PyLoad
http://localhost:9696   # Prowlarr
http://localhost:8191   # FlareSolverr

En modo VPS, todos los puertos se enlazan a 127.0.0.1 y se acceden a traves de subdominios de Caddy (por ejemplo, jellyfin.tudominio.com).

Volumenes

Volumenes de Configuracion

Cada servicio almacena su configuracion en un subdirectorio de ./config/:

Ruta del VolumenProposito
./config/jellyfinConfiguracion, metadatos y base de datos de Jellyfin
./config/sonarrConfiguracion y base de datos de Sonarr
./config/radarrConfiguracion y base de datos de Radarr
./config/qbittorrentConfiguracion de qBittorrent
./config/prowlarrConfiguracion y base de datos de Prowlarr
./config/pyloadConfiguracion de PyLoad

Volumenes de Contenido Multimedia

Los archivos multimedia se almacenan en ./media/ y se comparten entre Jellyfin, Sonarr, Radarr y el servidor MCP:

media/
  movies/    # Peliculas (gestionadas por Radarr)
  tv/        # Series de TV (gestionadas por Sonarr)
  anime/     # Anime
  music/     # Musica

El directorio ./downloads/ es utilizado por qBittorrent y PyLoad para descargas activas antes de ser importadas.

Configuracion de Red

Todos los servicios se comunican a traves de una red Docker bridge compartida llamada mediabox-net. Los servicios se referencian entre si por nombre de contenedor (por ejemplo, Sonarr se conecta a qBittorrent en http://qbittorrent:8085).

networks:
  mediabox-net:
    driver: bridge

Puertos internos usados para la comunicacion entre servicios:

ServicioURL Interna
Jellyfinhttp://jellyfin:8096
MCP Serverhttp://mcp-server:3000
Sonarrhttp://sonarr:8989
Radarrhttp://radarr:7878
qBittorrenthttp://qbittorrent:8085
PyLoadhttp://pyload:8000
Prowlarrhttp://prowlarr:9696
FlareSolverrhttp://flaresolverr:8191

Consejos de Personalizacion

Cambiar Puertos

Para cambiar el puerto host de un servicio, modifica el mapeo de ports en docker-compose.yml:

services:
  jellyfin:
    ports:
      - "9096:8096"  # Cambiado de 8096 a 9096 en el host

Transcodificacion por GPU (Jellyfin)

Para habilitar la transcodificacion acelerada por hardware en Jellyfin, pasa tu GPU al contenedor:

services:
  jellyfin:
    devices:
      - /dev/dri:/dev/dri  # GPU Intel/AMD
    # Para NVIDIA, usa el NVIDIA Container Toolkit en su lugar

Reiniciar Despues de Cambios

Despues de modificar docker-compose.yml, aplica los cambios:

docker compose up -d

Docker Compose solo recreara los contenedores cuya configuracion haya cambiado.