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
| Servicio | Imagen | Puerto Host | Descripcion |
|---|---|---|---|
| Jellyfin | lscr.io/linuxserver/jellyfin | 8096 | Servidor de streaming multimedia |
| MCP Server | ghcr.io/juancmpdev/mediabox-mcp | 3000 | Servidor de herramientas de IA (30 herramientas MCP) |
| Sonarr | lscr.io/linuxserver/sonarr | 8989 | Gestion de series de TV |
| Radarr | lscr.io/linuxserver/radarr | 7878 | Gestion de peliculas |
| qBittorrent | lscr.io/linuxserver/qbittorrent | 8085 | Cliente BitTorrent |
| PyLoad | lscr.io/linuxserver/pyload-ng | 8001 | Gestor de descargas directas |
| Prowlarr | lscr.io/linuxserver/prowlarr | 9696 | Administrador de indexadores |
| FlareSolverr | ghcr.io/flaresolverr/flaresolverr | 8191 | Proxy para evadir proteccion Cloudflare |
Servicios Opcionales
| Servicio | Imagen | Puerto | Descripcion |
|---|---|---|---|
| Bot de Telegram | ghcr.io/juancmpdev/mediabox-telegram | — | Interfaz de Telegram para gestionar contenido multimedia por chat. Se habilita durante la configuracion del asistente. |
| Bazarr | lscr.io/linuxserver/bazarr | 6767 | Descargador 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 Volumen | Proposito |
|---|---|
./config/jellyfin | Configuracion, metadatos y base de datos de Jellyfin |
./config/sonarr | Configuracion y base de datos de Sonarr |
./config/radarr | Configuracion y base de datos de Radarr |
./config/qbittorrent | Configuracion de qBittorrent |
./config/prowlarr | Configuracion y base de datos de Prowlarr |
./config/pyload | Configuracion 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:
| Servicio | URL Interna |
|---|---|
| Jellyfin | http://jellyfin:8096 |
| MCP Server | http://mcp-server:3000 |
| Sonarr | http://sonarr:8989 |
| Radarr | http://radarr:7878 |
| qBittorrent | http://qbittorrent:8085 |
| PyLoad | http://pyload:8000 |
| Prowlarr | http://prowlarr:9696 |
| FlareSolverr | http://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.