[{"data":1,"prerenderedAt":226},["ShallowReactive",2],{"seo-verification":3,"blog-seguridad-plex-migrar-jellyfin-navidrome-vps-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-seguridad-plex-migrar-jellyfin-navidrome-vps-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":164,"ctaBody":165,"ctaButton":166,"ctaUrl":167,"relatedPosts":168},394,"seguridad-plex-migrar-jellyfin-navidrome-vps",{"fr":12,"en":13,"ar":14,"es":10},"plex-securite-migration-jellyfin-navidrome-vps","plex-security-migration-jellyfin-navidrome-vps","امان-plex-هجرة-jellyfin-navidrome-vps","Migrar Plex a Jellyfin y Navidrome en un VPS","Más de 36.000 servidores Plex sin parche contra CVE-2026-96656 y CVE-2026-96651. Guía para migrar a Jellyfin y Navidrome en un VPS root.",8,0,false,"2026-09-28T00:00:00+00:00","2026-09-29T14:40:42+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},7,"Autoalojamiento","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fplex-securite-migration-jellyfin-navidrome-vps-poster.svg","En septiembre de 2026, la fundación Shadowserver contabilizó más de 36.000 instancias de Plex expuestas en internet que todavía ejecutaban versiones anteriores a la 1.43.3, el lanzamiento que corrige dos vulnerabilidades críticas que permiten escritura arbitraria de archivos y traversal de directorios. Si alojas Plex en un VPS root, la ventana de exposición es real y documentada. Esta guía muestra cómo cambiar a Jellyfin (vídeo) y Navidrome (música) sin perder bibliotecas, metadatos ni listas de reproducción, y por qué el coste de migrar es inferior al riesgo de quedarse.",[35,39,42,50,53,56,83,86,100,103,147,150,153,158,161],{"type":36,"title":37,"body":38},"h2","Por qué dejar Plex en 2026: 36.000 servidores expuestos","El 9 de septiembre de 2026, Shadowserver publicó sus hallazgos: más de 36.000 servidores Plex accesibles desde internet no habían aplicado la actualización 1.43.3, disponible desde el 19 de mayo. Dos CVE son el núcleo de este aviso. CVE-2026-96656 (CVSS 7.2) permite a un atacante con privilegios de administración escribir archivos arbitrarios que se ejecutan al inicio, es decir, cargar un plugin malicioso que instala un rootkit sin ninguna verificación de firma ni bit de ejecución. CVE-2026-96651 (CWE-22, path traversal) permite a cualquier sesión autenticada leer cualquier archivo accesible por el usuario de sistema de Plex, incluido el PlexOnlineToken. Combinadas, estas dos vulnerabilidades cubren un escenario de escalada completo: robo de sesión y luego ejecución de código. Plex corrigió ambas en la build 1.43.3.10861; la build 1.43.3.10896 es el objetivo recomendado. El problema estructural persiste: Plex es software propietario cuyo ciclo de parches depende de un único fabricante, y 36.000 administradores no habían aplicado una corrección de cuatro meses de antigüedad.",{"type":36,"title":40,"body":41},"Lo que Plex oculta detrás de su modelo cloud","Plex ofrece una interfaz cuidada, pero su modelo en la nube introduce dependencias ocultas que se vuelven problemáticas ante parches de seguridad o discontinuación del servicio.",{"type":43,"items":44},"ul",[45,46,47,48,49],"Acceso remoto vía Plex Relay: cada stream pasa por los servidores de plex.tv, aunque tu VPS sea el único que almacena los archivos. Plex ve tus metadatos de reproducción.","Plex Pass obligatorio para funciones clave: sincronización sin conexión, acceso multiusuario completo, TV en directo y acceso remoto sin reenvío de puertos están reservados para los suscriptores de pago.","Autenticación centralizada: el inicio de sesión de tus clientes pasa por los servidores de Plex. Una caída de plex.tv te desconecta de tus propios archivos.","Actualizaciones no controladas: Plex puede desplegar cambios en el lado del servidor (relay, autenticación) sin que puedas auditarlos ni bloquearlos.","Telemetría activa por defecto: reproducción, búsquedas y hábitos de visualización se envían al fabricante a menos que los deshabilites manualmente en cada cliente.",{"type":36,"title":51,"body":52},"Requisitos previos antes de comenzar la migración","Este procedimiento está orientado a un VPS root con Debian 12 o Ubuntu 22.04 LTS. Necesitas acceso SSH con root o sudo, Docker y Docker Compose instalados (v2+) y un directorio de medios accesible en lectura. Toma un snapshot del VPS antes de comenzar — los snapshots son reversibles con un solo comando y cuestan menos de una hora de cómputo. Jellyfin reemplaza la biblioteca de vídeo; Navidrome reemplaza la biblioteca de música. Ambos son de código abierto, sin suscripción, y se exponen detrás de un reverse proxy Nginx.",{"type":36,"title":54,"body":55},"Migración Plex → Jellyfin: paso a paso","Aquí está el procedimiento completo para migrar tu biblioteca Plex a Jellyfin sin perder datos ni historial de visualización.",{"type":57,"steps":58},"steps",[59,62,65,68,71,74,77,80],{"title":60,"body":61},"Crear un snapshot del VPS","Primero: `snapshot create plex-before-migration` desde el panel de tu proveedor (o la API equivalente). Este paso es tu red de seguridad; no lo omitas.",{"title":63,"body":64},"Detener Plex correctamente","```bash\nsystemctl stop plexmediaserver\nsystemctl disable plexmediaserver\n```\nEspera la confirmación de parada antes de continuar. Plex no debe seguir escuchando en el puerto 32400.",{"title":66,"body":67},"Instalar Jellyfin con Docker Compose","```yaml\n# \u002Fopt\u002Fjellyfin\u002Fdocker-compose.yml\nservices:\n  jellyfin:\n    image: jellyfin\u002Fjellyfin:latest\n    container_name: jellyfin\n    restart: unless-stopped\n    ports:\n      - \"8096:8096\"\n    volumes:\n      - \u002Fopt\u002Fjellyfin\u002Fconfig:\u002Fconfig\n      - \u002Fopt\u002Fjellyfin\u002Fcache:\u002Fcache\n      - \u002Fdata\u002Fmedia:\u002Fmedia:ro\n    environment:\n      - JELLYFIN_PublishedServerUrl=https:\u002F\u002Fjellyfin.tu-dominio.com\n```\nSustituye `\u002Fdata\u002Fmedia` por la ruta exacta de tus archivos. El volumen se monta en solo lectura (`:ro`) como medida de precaución.",{"title":69,"body":70},"Iniciar Jellyfin y ejecutar el asistente de configuración","```bash\ncd \u002Fopt\u002Fjellyfin && docker compose up -d\n```\nAccede a `http:\u002F\u002FIP-DEL-VPS:8096` para el asistente web. Crea la cuenta de administrador y añade tus bibliotecas apuntando a `\u002Fmedia\u002Fpeliculas`, `\u002Fmedia\u002Fseries`, etc.",{"title":72,"body":73},"Escanear bibliotecas y verificar metadatos","Jellyfin usa The Movie Database (TMDB) y TheTVDB por defecto. El primer escaneo completo tarda entre 5 y 30 minutos según el tamaño de la biblioteca. Verifica que las carátulas, sinopsis y valoraciones se muestran correctamente. Si un título no se reconoce automáticamente, usa la función Identificar para forzar la coincidencia.",{"title":75,"body":76},"Configurar los clientes de Jellyfin","Las aplicaciones oficiales de Jellyfin están disponibles en Android, iOS, Apple TV, Android TV, Roku y navegadores. Son gratuitas y de código abierto. Apunta cada cliente hacia la URL interna o pública de tu servidor; no se requiere autenticación de terceros.",{"title":78,"body":79},"Verificar transcodificación y subtítulos","En Panel > Reproducción, activa la transcodificación por hardware si tu VPS tiene GPU (Intel Quick Sync, NVIDIA NVENC). Prueba un archivo H.265 desde un cliente móvil para validar que la transcodificación por software funciona como respaldo. Verifica también que los subtítulos SRT y ASS\u002FSSA se muestran correctamente.",{"title":81,"body":82},"Eliminar Plex","```bash\napt remove plexmediaserver --purge\nrm -rf \u002Fvar\u002Flib\u002Fplexmediaserver\n```\nSolo elimina la instalación antigua después de validar Jellyfin en al menos un cliente durante 48 horas.",{"type":36,"title":84,"body":85},"Migración musical: Plex → Navidrome","Navidrome es un servidor de música de código abierto compatible con la API Subsonic, lo que le da acceso a todo el ecosistema de clientes (DSub, Symfonium, Ultrasonic, Airsonic, etc.). Lee etiquetas ID3 v2.3 y v2.4, y archivos FLAC, MP3, AAC, OGG y Opus. Las listas de reproducción M3U presentes en tu directorio de música se importan automáticamente siempre que las rutas sean relativas a la raíz musical.",{"type":57,"steps":87},[88,91,94,97],{"title":89,"body":90},"Verificar la estructura de carpetas","Navidrome espera una jerarquía `Artista\u002FÁlbum\u002FPista.mp3`. Si tus archivos ya están organizados así (lo que Plex también requiere), no es necesaria ninguna reorganización. Comprueba la ausencia de caracteres especiales en los nombres de carpetas (`\u002F`, `:`, `?`).",{"title":92,"body":93},"Auditar las etiquetas ID3","```bash\nfind \u002Fdata\u002Fmusic -name '*.mp3' | head -20 | xargs id3v2 -l\n```\nLos campos `TPE1` (artista), `TALB` (álbum) y `TIT2` (título) deben estar rellenos. Un archivo sin estas tres etiquetas se importará pero sin metadatos visibles. La herramienta `beets` puede corregir etiquetas faltantes en masa a través de su base de datos MusicBrainz.",{"title":95,"body":96},"Desplegar Navidrome con Docker Compose","```yaml\n# \u002Fopt\u002Fnavidrome\u002Fdocker-compose.yml\nservices:\n  navidrome:\n    image: deluan\u002Fnavidrome:latest\n    container_name: navidrome\n    restart: unless-stopped\n    ports:\n      - \"4533:4533\"\n    volumes:\n      - \u002Fopt\u002Fnavidrome\u002Fdata:\u002Fdata\n      - \u002Fdata\u002Fmusic:\u002Fmusic:ro\n    environment:\n      - ND_SCANSCHEDULE=1h\n      - ND_LOGLEVEL=info\n      - ND_BASEURL=\n```\nInicia con `docker compose up -d` y accede a `http:\u002F\u002FIP:4533` para crear la primera cuenta.",{"title":98,"body":99},"Migrar listas de reproducción de Plex","Plex no exporta listas de reproducción en formato M3U de forma nativa desde la interfaz. Usa la herramienta `plexapi` de Python para exportar: `python3 -m plexapi.playlist export --token TU_TOKEN --output \u002Fdata\u002Fmusic\u002Fplaylists\u002F`. Los archivos M3U generados son importados automáticamente por Navidrome si las rutas son relativas al volumen `\u002Fmusic`.",{"type":36,"title":101,"body":102},"Comparativa Plex vs Jellyfin vs Navidrome","La siguiente tabla compara los criterios esenciales para elegir entre Plex, Jellyfin y Navidrome.",{"type":104,"headers":105,"rows":110},"comparison",[106,107,108,109],"Criterio","Plex","Jellyfin","Navidrome",[111,116,120,124,128,133,138,143],[112,113,114,115],"Licencia","Propietario (freemium)","GPL-2.0 código abierto","GPL-3.0 código abierto",[117,118,119,119],"Acceso remoto sin suscripción","No (requiere Plex Pass)","Sí, nativo",[121,122,123,123],"Autenticación de terceros requerida","Sí (plex.tv)","No",[125,126,126,127],"Biblioteca de vídeo","Sí","No (solo música)",[129,130,131,132],"Biblioteca de música","Sí (limitado)","Parcial","Sí (especializado)",[134,135,136,137],"Transcodificación por hardware","Requiere Plex Pass","Nativa (NVENC, QSV, VAAPI)","N\u002FA (solo audio)",[139,140,141,142],"Clientes móviles oficiales","De pago en iOS\u002FAndroid","Gratuitos, código abierto","Clientes Subsonic de terceros",[144,145,146,146],"Dependencia de la nube","Alta (relay, auth)","Ninguna",{"type":36,"title":148,"body":149},"Configuración de Nginx como reverse proxy para Jellyfin","Jellyfin debe exponerse mediante HTTPS. La configuración siguiente asume un certificado Let's Encrypt gestionado por Certbot o tu CDN en modo Full (strict). Nunca expongas el puerto 8096 directamente; pasa siempre por Nginx.\n\n```nginx\n# \u002Fetc\u002Fnginx\u002Fsites-available\u002Fjellyfin\nserver {\n    listen 80;\n    server_name jellyfin.tu-dominio.com;\n    return 301 https:\u002F\u002F$host$request_uri;\n}\n\nserver {\n    listen 443 ssl http2;\n    server_name jellyfin.tu-dominio.com;\n\n    ssl_certificate \u002Fetc\u002Fletsencrypt\u002Flive\u002Fjellyfin.tu-dominio.com\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Fjellyfin.tu-dominio.com\u002Fprivkey.pem;\n\n    add_header X-Frame-Options \"SAMEORIGIN\";\n    add_header X-Content-Type-Options \"nosniff\";\n    add_header X-XSS-Protection \"1; mode=block\";\n\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:8096;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n\n        proxy_buffering off;\n        proxy_read_timeout 3600;\n    }\n}\n```\nAplica la misma estructura para Navidrome reemplazando el puerto por 4533. Activa la configuración con `nginx -t && systemctl reload nginx`.",{"type":36,"title":151,"body":152},"Solución de problemas: los 3 errores más frecuentes","Estos son los tres problemas más frecuentes durante una migración Plex\u002FJellyfin, con sus soluciones directas.",{"type":43,"items":154},[155,156,157],"Biblioteca vacía tras el primer escaneo: verifica que la ruta montada en Docker corresponde exactamente al directorio que contiene tus archivos. `docker exec jellyfin ls \u002Fmedia` debe listar tus carpetas. Si el volumen está vacío, corrige el mapeo en docker-compose.yml y reinicia el contenedor.","Transcodificación falla con error ffmpeg: Jellyfin incluye su propia versión de ffmpeg. Si el contenedor no tiene acceso a GPU, deshabilita la transcodificación por hardware en Panel > Reproducción y cambia a transcodificación por software. En un VPS sin GPU, esta es la configuración normal.","Los clientes iOS\u002FAndroid no encuentran el servidor: asegúrate de que el cortafuegos permite el puerto 443 desde el exterior (`ufw allow 443`), que tu DNS apunta a la IP del VPS y que el certificado TLS es válido. Prueba con `curl -I https:\u002F\u002Fjellyfin.tu-dominio.com\u002Fhealth` desde tu máquina local.",{"type":159,"body":160},"tip","Mantén Plex deshabilitado (no desinstalado) durante las primeras 48 horas tras la migración. El snapshot del VPS te permite volver atrás en menos de cinco minutos. Solo elimina los archivos de configuración de Plex (`\u002Fvar\u002Flib\u002Fplexmediaserver`) después de confirmar que todos tus clientes funcionan correctamente en Jellyfin y Navidrome.",{"type":36,"title":162,"body":163},"Conclusión","Los 36.000 servidores Plex sin parche no son señal de negligencia individual: revelan una dependencia estructural de un fabricante propietario cuyo ciclo de parches es opaco. CVE-2026-96656 y CVE-2026-96651 muestran que esa dependencia tiene un coste medible. Jellyfin y Navidrome te devuelven el control: sin autenticación de terceros, sin relay cloud, sin suscripción para el acceso remoto. La migración lleva menos de una hora con esta guía; la biblioteca llega intacta. Si alojas tus medios en un VPS root, ya no hay razón para esperar.","Aloja Jellyfin en un VPS root hoy","ServOrbit ofrece Jellyfin preconfigurado en VPS root desde 99 DH\u002Fmes. Despliegue en un clic, reverse proxy Nginx incluido, sin suscripción ni nube de terceros.","Desplegar Jellyfin en VPS","\u002Fmarketplace\u002Fmedia\u002Fjellyfin",[169,189,208],{"id":170,"slug":171,"slugs":172,"title":176,"excerpt":177,"readTime":178,"views":179,"isPinned":19,"publishedAt":180,"updatedAt":181,"category":182,"categories":183,"featuredImage":30,"bgImage":31,"posterImage":185,"relatedSolution":186},84,"alojar-jellyfin-en-un-vps",{"fr":173,"en":174,"ar":175,"es":171},"heberger-jellyfin","host-jellyfin-on-your-own-vps","استضافة-jellyfin-على-خادمك-الافتراضي-الخاص-vps","Alojar Jellyfin en un VPS: guía completa 2026","Despliega Jellyfin self-hosted en VPS con Docker, nginx, HTTPS, plugins, almacenamiento y transcodificación. Guía completa actualizada para 2026.",10,3,"2026-03-28T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[184],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-jellyfin-poster.svg",{"categorySlug":187,"appSlug":188},"colaboracion-productividad","jellyfin",{"id":190,"slug":191,"slugs":192,"title":196,"excerpt":197,"readTime":17,"views":18,"isPinned":19,"publishedAt":198,"updatedAt":199,"category":200,"categories":205,"featuredImage":30,"bgImage":31,"posterImage":207,"relatedSolution":30},98,"jellyfin-vs-plex-que-servidor-multimedia-autoalojado",{"fr":193,"en":194,"ar":195,"es":191},"jellyfin-vs-plex","jellyfin-vs-plex-which-self-hosted-media-server","jellyfin-مقابل-plex-أي-خادم-وسائط-مستضاف-ذاتيا","Jellyfin vs Plex: ¿qué servidor multimedia autoalojado?","Jellyfin vs Plex: comparativa completa para elegir su servidor multimedia autoalojado en un VPS — despliegue Docker, solución de errores y migración a Jellyfin 12.","2026-03-14T00:00:00+00:00","2026-09-10T13:10:43+00:00",{"id":201,"name":202,"slug":203,"color":204,"icon":203},5,"Comparativas","comparatif","bg-info\u002F10 text-info",[206],{"id":201,"name":202,"slug":203,"color":204,"icon":203},"\u002Fblog\u002Fcovers\u002Fjellyfin-vs-plex-poster.svg",{"id":209,"slug":210,"slugs":211,"title":215,"excerpt":216,"readTime":178,"views":18,"isPinned":19,"publishedAt":217,"updatedAt":21,"category":218,"categories":223,"featuredImage":30,"bgImage":31,"posterImage":225,"relatedSolution":30},382,"actualizaciones-seguridad-vps-debian-ubuntu",{"fr":212,"en":213,"ar":214,"es":210},"securite-vps-mises-a-jour-automatiques-debian-ubuntu","vps-automatic-security-updates-debian-ubuntu","تحديثات-أمان-تلقائية-vps-debian-ubuntu","Actualizaciones de seguridad automáticas en VPS Debian\u002FUbuntu","Configure unattended-upgrades en sus VPS Debian\u002FUbuntu para automatizar los parches de seguridad y reducir la superficie de ataque en su flota de clientes.","2026-09-26T00:00:00+00:00",{"id":17,"name":219,"slug":220,"color":221,"icon":222},"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[224],{"id":17,"name":219,"slug":220,"color":221,"icon":222},"\u002Fblog\u002Fcovers\u002Fsecurite-vps-mises-a-jour-automatiques-debian-ubuntu-poster.svg",1790693333573]