Todo administrador de Jellyfin conoce el ritual: un amigo te pide una cuenta, la creas a mano, adivinas qué bibliotecas debería ver, le envías una contraseña por alguna aplicación de chat y, una semana después, descubres que la mitad de ellos pueden descargarse toda tu biblioteca. Compartir la cuenta de administrador es peor, pero hacerlo todo a mano tampoco escala.
El plugin Registration para Jellyfin sustituye ese ritual por una página pública en la dirección de tu propio servidor. Los visitantes rellenan un formulario, tú decides quién entra y cada cuenta se crea desactivada, oculta en la pantalla de inicio de sesión y con los permisos mínimos que definas una vez. Este tutorial recorre una configuración en la que los códigos de invitación controlan quién puede solicitar una cuenta, el modo de aprobación te mantiene al tanto y los ajustes de acceso por defecto garantizan que los usuarios nuevos nunca empiecen con más de lo que necesitan.
Requisitos previos
- Jellyfin Server 12.2 o superior, en Linux, Windows o Docker.
- Tu servidor accesible por HTTPS para las personas que se van a registrar, directamente o a través de un proxy inverso.
- Una cuenta de MediaLab Works con una licencia que cubra el plugin: una suscripción activa, una licencia de por vida dentro de su ventana de actualizaciones, el paquete de Jellyfin o la prueba gratuita de 30 días.
- Opcional pero recomendado: un servidor SMTP configurado en el plugin si quieres confirmaciones por correo y mensajes de decisión, y un bot de Telegram si quieres notificaciones allí.
Paso 1 — Instalar el plugin
El camino sencillo es tu repositorio privado de plugins, porque así Jellyfin instala y actualiza el plugin por sí solo.
- En tu cuenta de MediaLab Works abre Licenses → Jellyfin plugin repository y haz clic en Create address. La dirección contiene un token, así que trátala como un secreto.
- En Jellyfin ve a Dashboard → Plugins → Repositories, haz clic en +, ponle un nombre (por ejemplo MediaLab Works), pega la dirección y guarda.
- Abre Dashboard → Plugins → Catalog, busca Registration by MediaLab, haz clic en Install y reinicia Jellyfin.
Si prefieres la instalación manual, descarga el zip desde Account → Licenses, extráelo en una carpeta nueva Registration by MediaLab_x.y.z.0 dentro de la carpeta de plugins (/var/lib/jellyfin/plugins/ en una instalación con paquete de Linux, /config/plugins/ en la imagen oficial de Docker, %ProgramData%\Jellyfin\Server\plugins\ en Windows) y reinicia Jellyfin.
Paso 2 — Activar la licencia
Abre la página del plugin en Dashboard → Plugins → Registration by MediaLab y haz clic en Open License page. Pega tu clave y haz clic en Activate with key; la licencia queda vinculada a este servidor y se muestra como Active. Sin clave puedes iniciar la prueba gratuita de 30 días desde la misma página. La licencia se comprueba una vez al día y en cada arranque de Jellyfin, y sin internet el plugin sigue funcionando durante 7 días después de la última comprobación correcta.
Paso 3 — Abrir la página de registro
Ve a Dashboard → Registration. Tras la instalación el registro está cerrado, así que nada se abre por sí solo. En la pestaña General:
- Elige el modo: aprobación manual (el predeterminado), solo con código de invitación o automático.
- Activa Registration open.
- Opcionalmente, define una fecha de apertura y de cierre, para que la página se cierre sola después de tu ronda de invitaciones.
- Introduce la dirección pública de tu servidor; se usa para los enlaces de los correos.
La página pública está en https://<tu servidor>/Registration/Page y está disponible en inglés y rumano, pensada primero para móviles: nombre de usuario comprobado mientras escribes, nombre, correo electrónico, número de teléfono en formato internacional y una contraseña con indicador de fortaleza. La pestaña Send access te da el enlace y un código QR listos para enviar.
Mientras tienes la sesión iniciada en Jellyfin como administrador en el mismo navegador, abrir la página te muestra el formulario directamente, sin código, y la solicitud se marca como prueba. Úsalo para comprobar el flujo antes de enviar el enlace a nadie.
Paso 4 — Trabajar con códigos de invitación
En la pestaña Invitations encuentras el código de invitación actual y un código familiar opcional.
- El código de invitación es de un solo uso y se renueva tras usarse: cada persona nueva recibe un código nuevo, así que un código filtrado no abre la puerta a todos.
- El código familiar está pensado para personas que viven en la misma casa, de modo que un hogar puede registrarse sin que tengas que emitir un código por persona.
Pon el modo en solo con código de invitación si no quieres que ocurra nada sin un código, o mantén el modo de aprobación y usa los códigos como filtro adicional. En cualquier caso, envía el enlace de la página junto con el código; la pestaña Send access tiene ambos listos para copiar.
Paso 5 — Elegir el modo de aprobación
Con la aprobación manual (la opción predeterminada), cada solicitud te espera en Dashboard → Registration → Requests. Ves las solicitudes pendientes y procesadas, puedes buscarlas, aprobar o rechazar de una en una o en bloque, y exportar la lista como CSV.
Esta es la opción segura por defecto: aunque un bot supere las comprobaciones antibots, nada se convierte en una cuenta sin ti. La cuenta en sí se crea desactivada en el momento de la solicitud, así que la aprobación solo la activa. La confirmación por correo electrónico se puede activar por separado en la misma zona si quieres que los solicitantes demuestren su dirección.
Paso 6 — Definir el acceso por defecto para las cuentas nuevas
Esta es la parte que más trabajo te ahorra después. En la pestaña Default access defines lo que recibe cada cuenta aprobada:
- Bibliotecas: todas, o solo las que elijas. En un servidor mixto, entrega solo las bibliotecas que una persona nueva debería ver.
- Límites de reproducciones simultáneas y de bitrate remoto, si los quieres.
- Desactivación automática tras un número de días, útil para accesos de prueba.
Las cuentas nuevas se crean con permisos mínimos: sin administración, sin descargas, sin sincronización, sin borrado, y no aparecen en la pantalla de inicio de sesión. Piénsalo como un usuario plantilla que configuras una vez y reutilizas para todos, salvo que nunca tienes que copiar permisos a mano.
En la pestaña Form también puedes definir el país predeterminado, los países permitidos, las reglas de nombre de usuario y contraseña, y el texto de privacidad que se muestra en la página.
Paso 7 — Mantener a los bots fuera
La pestaña Anti-bot es donde endureces la página pública:
- La prueba de trabajo se ejecuta en el navegador, y el formulario usa tokens de un solo uso firmados y un campo trampa oculto.
- Cloudflare Turnstile es opcional y está desactivado por defecto; solo se activa si introduces tus propias claves.
- Los límites de frecuencia se aplican por IP y por red.
- Se rechazan las direcciones de centros de datos, VPN comerciales y Tor, y se rechazan los dominios de correo desechable.
- Las reglas de cuenta duplicada imponen una cuenta por persona: el mismo dispositivo, número de teléfono o navegador y red se bloquean o se marcan, regla por regla.
Aquí también puedes restringir los países de los visitantes. La información del país proviene de la cabecera CF-IPCountry cuando estás detrás de Cloudflare, y el tipo de red de una base de datos local de ASN, sin consultas en línea.
Paso 8 — Notificaciones y enlace de inicio de sesión
En la pestaña Notifications, activa el registro de actividad de Jellyfin, el correo electrónico (a través de tu servidor SMTP) y Telegram, como prefieras. Las notificaciones por correo al administrador están desactivadas por defecto; el correo al solicitante puede llevar la confirmación, la decisión y el mensaje de acceso que redactes, que puede incluir una contraseña generada.
Mientras el registro está abierto, el plugin puede añadir un enlace Create an account y un código QR a la pantalla de inicio de sesión de Jellyfin. Eso se hace a través del texto del aviso de inicio de sesión (Branding → Login disclaimer), sin modificar archivos.
Consejos y solución de problemas
- "Registration is closed": activa Registration open en la pestaña General y comprueba las fechas de apertura y cierre.
- "Not available from this network": el visitante está en una dirección de centro de datos, VPN o Tor. Desactiva esa regla en Anti-bot solo si realmente lo necesitas.
- Detrás de Cloudflare o de un proxy inverso: asegúrate de que la dirección real del visitante llega a Jellyfin (ajuste Known proxies de Jellyfin). De lo contrario, todos los visitantes comparten una dirección y alcanzan los límites de frecuencia.
- Televisores: el formulario admite Quick Connect nativo de Jellyfin, así que se puede introducir un código de TV en el formulario y la TV inicia sesión cuando la cuenta se activa. Esto está verificado a nivel de API pero no probado en aplicaciones de TV reales, así que pruébalo primero con tu propio dispositivo.
- Retención de datos: las solicitudes pendientes caducan a los 7 días y la cuenta desactivada se elimina; las solicitudes rechazadas, caducadas o eliminadas se purgan a los 30 días. El plugin no almacena contraseñas; las gestiona Jellyfin.
- Actualizaciones: con una licencia de por vida cuya ventana de actualizaciones ha terminado, cíñete a tu repositorio privado para que Jellyfin no instale una versión que tu licencia no cubre. Si ocurre, usa Roll back to x.y.z en la página de la licencia.
Conclusión
Una página pública de registro solo es segura cuando es aburrida: códigos que se renuevan solos, aprobación antes de activar nada y permisos por defecto que nunca superan lo que necesita un espectador nuevo. Registration te da exactamente eso y elimina la creación manual de cuentas de tus noches. Cuando estés listo para el siguiente paso, el plugin funciona con Cashier para vender suscripciones de pago a tu servidor.
Empieza en la página del producto, sigue la guía de usuario para ver las pestañas exactas y consulta el changelog antes de actualizar. Hay más material de autohospedaje en nuestra base de conocimiento, y si algo no funciona, contacta con nosotros.