Este laboratorio reproduce en una máquina desechable la guía cómo actualizar Jellyfin 12 con Docker y poder volver atrás: partes de la 10.11.11 instalada como en la guía para instalar Jellyfin con Docker, copias el volumen de configuración, saltas a la 12.0 y compruebas la vuelta atrás. Todo lo que ves en la terminal se ejecutó de verdad, con las imágenes oficiales jellyfin/jellyfin:10.11.11 y jellyfin/jellyfin:12.0.
Por qué hay que copiar /config antes de actualizar Jellyfin 12
La 12.0 reescribe la base de datos en el primer arranque y la documentación de copia y restauración de Jellyfin lo deja claro: no hay mecanismo para volver a una versión anterior. En la imagen oficial, datos y configuración viven juntos bajo /config, así que esa carpeta es lo único que necesitas guardar. Las notas de la versión 12.0 solo admiten el salto directo desde la 10.10.7 o cualquier 10.11.x.
Cómo se hace la copia de un volumen con nombre
Con Jellyfin parado, un contenedor alpine:3 de usar y tirar monta el volumen jellyfin-config en solo lectura y lo empaqueta con tar. Es el mismo patrón que el laboratorio de copia de seguridad y restauración de volúmenes en Docker, y la diferencia entre volúmenes y carpetas montadas la explica el artículo sobre volúmenes y bind mounts en Docker. La documentación de Docker sobre volúmenes describe la misma técnica.
Qué demuestra la vuelta atrás del laboratorio
Volver a la etiqueta 10.11.11 sin restaurar la copia deja un servidor que contesta Healthy en /health y da su versión por la API, pero cuyo registro tiene un error fatal al arrancar. Restaurar el tar.gz y arrancar la 10.11.11 devuelve un registro sin líneas FTL y el mismo identificador de servidor. Si tienes Jellyfin con la etiqueta latest, revisa también el artículo sobre Watchtower para actualizar contenedores Docker: la imagen oficial en Docker Hub mueve latest a la 12.0, y una actualización automática migra sin copia previa.
El laboratorio no cubre el escaneo completo de bibliotecas ni los complementos de terceros, porque la máquina no tiene biblioteca ni usuarios. Esos pasos, con sus tiempos medidos, están en la guía escrita.
Preguntas frecuentes
¿Puedo volver a Jellyfin 10.11 solo cambiando la etiqueta de la imagen?
No. En este lab, la 10.11.11 arrancada sobre datos ya migrados respondió Healthy en /health y dio la versión por la API, pero su registro tenía un error fatal al arrancar la aplicación. Hay que restaurar la copia de /config hecha antes de migrar.
¿Cómo compruebo la versión de Jellyfin sin iniciar sesión?
Consulta /System/Info/Public, que no pide autenticación: curl -s http://localhost:8096/System/Info/Public | jq -r .Version. En el lab devolvió 10.11.11 antes de actualizar y 12.0.0 después.
¿Cómo hago la copia de seguridad si uso volúmenes con nombre?
Para Jellyfin y monta el volumen en un contenedor auxiliar: docker run –rm -v jellyfin-config:/config:ro -v "$PWD":/backup alpine:3 tar -czf /backup/jellyfin-config.tar.gz -C / config. La restauración es la misma idea al revés, con el volumen montado con escritura.
¿Hace falta ejecutar –mode MigrateSystem antes de arrancar la 12.0?
No, el servidor migra solo al arrancar. Separarlo te deja leer el resultado: en el lab anunció 18 migraciones de CoreInitialisation y 13 de AppInitialisation. Como sale con código 0 aunque falle, revisa que el registro diga Migrations have been applied y no tenga líneas FTL.