Valida primero el nuevo servidor Jellyfin con el estado copiado y medios desechables; los datos de producción solo se migran después de superar las pruebas de reproducción, recuperación y reversión.
Trata la migración como un único proceso controlado, manteniendo el servidor antiguo como autoridad. Restaura un punto de control versionado en un destino aislado, reproduce sus montajes lógicos y su identidad de ejecución, y después prueba los clientes, códecs, subtítulos, ruta remota, escáneres y comportamiento tras reinicios que realmente importan. Que un panel se abra es solo el primer filtro; el resultado lo determina la dependencia que falle de forma más crítica.
Congela la línea base de producción y el punto de reversión
Registra la versión de Jellyfin de origen, el método de instalación, el UID/GID de ejecución o la cuenta de servicio, las ubicaciones de configuración y caché, las rutas lógicas de medios, las asignaciones de dispositivos de hardware, la dirección del proxy inverso, los certificados, los usuarios, el número de elementos de las bibliotecas, las tareas programadas, los complementos y un ejemplo de reproducción verificada para cada ruta crítica.
Define el fallo antes de tocar el destino: error en la migración de la base de datos, biblioteca ausente, propiedad incorrecta, inicio de sesión roto, aceleración de hardware no disponible, cliente crítico fallido o reversión que supere el presupuesto de interrupción. Así, la migración deja de ser una comprobación de confianza imprecisa y se convierte en una serie de filtros observables.
Crea un punto de control coherente y mantén el origen sin cambios después de la línea base de prueba. Un reciente informe de fallo de migración ilustra por qué la correspondencia entre versiones de la aplicación debe formar parte de la línea base: la recuperación puede fallar en el límite de migración de la base de datos incluso cuando los archivos existen.Construye una ruta de preparación de solo copia
Instala el destino con la misma versión de Jellyfin que el punto de control y restaura allí el estado en un almacenamiento aislado. Copia medios representativos o monta un pequeño subconjunto en modo de solo lectura. No cambies de nombre, elimines ni reorganices archivos de producción para hacer funcionar el candidato; cada cambio destructivo elimina evidencias para la reversión.
Asigna al destino un nombre de host, una dirección y un punto de acceso de cliente temporales. Impide que las tareas programadas, los webhooks, los descargadores o las automatizaciones traten ambas instancias como activas. Dos servidores pueden leer la misma muestra inmutable, pero no deben escribir en la misma base de datos, caché, árbol de metadatos ni ubicación de ingesta.
Si también cambia la plataforma, reproduce un límite cada vez: ruta del contenedor, identidad del servicio, protocolo de almacenamiento, ruta de red y, por último, acceso al acelerador. La implementación de contenedores recuperable ofrece una explicación más detallada para declarar los montajes y el estado persistente.Supera los filtros de identidad, rutas y versiones
Inicia el candidato e inspecciona los registros antes de abrir el panel. Confirma que cargó la identidad restaurada del servidor en lugar de iniciar la configuración inicial, que todas las rutas de medios esperadas están montadas y que el entorno de ejecución puede leer los medios y escribir únicamente en las rutas de estado y caché previstas.
Reinicia todo el destino, no solo la aplicación. Verifica el orden de las dependencias, los montajes de almacenamiento, el DNS, el enrutamiento del proxy, los certificados, las tareas programadas, los complementos y el acceso a los dispositivos de la GPU después de un arranque en frío. Un inicio interactivo correcto puede ocultar un fallo de orden de arranque o de permisos.
Detente ante cualquier advertencia de migración de la base de datos, biblioteca vacía causada por un montaje ausente, discrepancia de propietario, reescritura de rutas o fallback a transcodificación por software cuando debía usarse aceleración. Utiliza la lista de comprobación de identidad y estado para comparar la instancia restaurada con su origen verificado.
Ejecuta una matriz de cargas representativa
Prueba resultados, no menús. Usa el mismo archivo, cliente, pista de subtítulos, resolución de salida y ruta de red que en la línea base. Lee el panel de Jellyfin y los registros de transcodificación durante cada ejecución, y registra la hora de inicio, el almacenamiento en búfer, los fotogramas perdidos, el uso de CPU/GPU y si el modo fue reproducción directa, remultiplexado o transcodificación.
| Ruta | Prueba representativa | Condición de aprobación |
|---|---|---|
| Directa local | Cliente y archivo compatibles conocidos | Reproducción directa, búsqueda estable y ningún error nuevo |
| Subtítulos | Pista de texto habitual y pista de imagen o con estilos más exigente | Renderizado correcto y reproducción en tiempo real |
| HDR/transcodificación | Conversión más exigente necesaria | Acelerador esperado y velocidad superior a la de tiempo real |
| Concurrencia | Sesiones simultáneas realistas | Sin saturación ni falta de recursos |
| Biblioteca | Escaneo incremental y lectura de metadatos | Sin duplicación de rutas ni pérdida de datos personalizados |
| Remota | Cliente externo a través de la ruta normal | Autenticación, certificado, tasa de bits y reproducción correctos |
Una prueba sencilla aprobada no puede sustituir a la fila más exigente que sea necesaria. Si falla un cliente crítico o una ruta de subtítulos, corrige esa dependencia y repite la matriz, o elimínala explícitamente de los requisitos de producción antes del cambio.
Demuestra la recuperación y cambia una sola vez
Toma un punto de control nuevo del destino, destruye únicamente el estado desechable del destino y restáuralo de forma limpia. Repite las comprobaciones de inicio de sesión, biblioteca, reproducción, reinicio y tareas programadas. La independiente guía de restauración previa a la actualización refuerza el límite práctico: una copia de seguridad merece confianza cuando supera una restauración y un reinicio.Programa una única ventana de cambio. Pausa los cambios en el origen, toma el punto de control final del estado, sincroniza el delta de medios previsto, restaura o actualiza el destino y cambia el único punto de acceso orientado al cliente. Vuelve a ejecutar las filas bloqueantes antes de permitir escrituras normales o el mantenimiento de las bibliotecas.
Mantén el servidor antiguo encendido y apagado, o aislado pero intacto, durante la ventana de observación. Revierte restaurando el punto de acceso original, no copiando hacia atrás un estado incierto del destino. Retira el origen solo después de que el servidor nuevo supere la carga normal, un reinicio programado, un ciclo de copia de seguridad y la ventana de recuperación acordada.
Configuración de NAS y Servidor
Más para leer

Cómo separar los datos, la caché y las copias de seguridad de la aplicación Home Assistant
Mantén persistente el estado autoritativo de la aplicación, demuestra que la caché es desechable antes de moverla y almacena las copias de seguridad probadas...

Cómo adaptar una configuración de Home Assistant para usuarios remotos y locales
Mantén el control local de Home Assistant independiente del extremo remoto y añade acceso remoto seguro con un comportamiento predecible de DNS, identidad y...

Cómo trasladar Home Assistant de un contenedor único a una pila de servicios resiliente
Primero preserva el estado operativo; luego separa los datos, las dependencias, el estado de salud, los recursos y la recuperación para que el fallo...

