Registration añade una página de registro pública a tu servidor de Jellyfin: los visitantes solicitan una cuenta ellos mismos y tú decides quién entra. La cuenta se crea desactivada, oculta en la pantalla de inicio de sesión y con derechos mínimos; tú la apruebas desde el panel de Jellyfin.
Qué hace
- Página pública en
https://<your server>/Registration/Page, en inglés y rumano, pensada primero para teléfonos: nombre de usuario (comprobado mientras escribes), nombre, correo, número de teléfono en formato internacional, contraseña con medidor de fortaleza. - Modos: aprobación manual (predeterminado), solo código de invitación, o automático. La confirmación por correo se puede activar por separado.
- Aprobación en Dashboard → Registration → Requests: solicitudes pendientes y procesadas, búsqueda, aprobación o rechazo una a una o en bloque, exportación a CSV.
- Derechos mínimos por defecto: sin administración, descargas, sincronización ni borrado; la cuenta no aparece en la pantalla de inicio de sesión. Bibliotecas: todas, o solo las que elijas; límites opcionales de streams simultáneos y bitrate remoto.
- Códigos de invitación: un código de un solo uso que se renueva tras usarse, y un código familiar opcional para las personas que viven en el mismo hogar.
- Una cuenta por persona: el mismo dispositivo, número de teléfono o navegador y red se bloquean o marcan, regla por regla.
- Anti-bot: prueba de trabajo en el navegador, Cloudflare Turnstile opcional, un campo trampa oculto, tokens de formulario firmados de un solo uso, límites de peticiones por IP y por red, dominios de correo desechables rechazados, y sin acceso desde datacenters, VPN comerciales o Tor.
- Notificaciones en el registro de actividad de Jellyfin, por correo y en Telegram.
- Enlace en la pantalla de inicio de sesión: un enlace Crear una cuenta y un código QR en la pantalla de inicio de sesión de Jellyfin mientras el registro está abierto.
- Funciona con Cashier para vender suscripciones de pago a tu servidor.
Requisitos
- Jellyfin Server 12.2 o superior.
- El servidor accesible por HTTPS para las personas que se registran (directamente o a través de un proxy inverso).
Preguntas frecuentes
¿Cómo dejo crear una cuenta en Jellyfin a los usuarios? Instala Registration, abre Dashboard → Registration, elige las bibliotecas y el modo, y después activa Registration open y comparte el enlace de la página (o el código QR de Send access). Con la aprobación activada, cada solicitud te espera en la pestaña Requests. Consulta la guía.
¿Pueden los bots crear cuentas? La página combina prueba de trabajo, Turnstile opcional, límites de peticiones y comprobaciones de red; los navegadores automatizados se rechazan, y con la aprobación activada nada se convierte en cuenta sin ti.
Qué envía y adónde
- Have I Been Pwned – Pwned Passwords (
api.pwnedpasswords.com), activado por defecto: al enviar el formulario solo se envían los primeros 5 caracteres del hash SHA-1 de la contraseña (k-anonimato, con relleno); la contraseña y el hash completo nunca salen. Se puede desactivar. Si el servicio está caído, el registro continúa. - Cloudflare Turnstile (
challenges.cloudflare.com) — opcional, desactivado por defecto (solo si escribes tus propias claves): el navegador del visitante carga el widget de Turnstile; el servidor verifica la respuesta enviando la clave secreta, el token y la dirección IP del visitante. - Correo a través de tu servidor SMTP (nada hasta que configures SMTP; STARTTLS por defecto): al solicitante — confirmación, decisión (aprobada/rechazada), el mensaje de acceso redactado por el administrador (puede contener una contraseña generada); al administrador — notificaciones (desactivadas por defecto). Los plugins Cashier y Security Notifications pueden enviar correo a través de este SMTP.
- Telegram (
api.telegram.org) — opcional, desactivado por defecto: notificaciones al administrador con los datos de la solicitud (nombre y apellidos, nombre de usuario, correo, teléfono, IP, país de Cloudflare). El mismo contenido va al correo del administrador si está activado. - Sin consultas geo/ASN en línea: el país procede de la cabecera
CF-IPCountry(si el servidor está detrás de Cloudflare); el tipo de red (datacenter/Tor) procede de una base de datos ASN local (por ejemplo la que descarga Access Log), sin ninguna petición de red. - La página pública de registro carga solo los archivos propios del plugin (más Turnstile si está activado); los códigos QR se generan en el servidor. Los botones para compartir de WhatsApp/Telegram en la página de administración son enlaces simples que abre el administrador.
- Además, el cliente de licencias, igual en todos los plugins: consulta Licencias y privacidad en nuestros plugins.
Guardado localmente:
data/registrations.json(modo 600): por solicitud — nombre de usuario, nombre y apellidos, correo, teléfono, código de invitación, IP, país de Cloudflare, User-Agent, idioma, hora de consentimiento, hash del token de correo (no el token), subred, id de dispositivo con hash, huella del navegador, ISP (ASN), marcas; además de códigos de invitación/acceso, bloqueos y estadísticas diarias.- El plugin no guarda las contraseñas: la cuenta de Jellyfin se crea (desactivada) en el momento de la solicitud, con la contraseña gestionada por el servidor; la aprobación solo la activa.
- Configuración del plugin: contraseña SMTP, token de Telegram, secreto de Turnstile, clave HMAC del formulario.
- En el navegador del visitante: un id de dispositivo firmado (cookie + localStorage).
- Conservación: las solicitudes rechazadas/caducadas/borradas se purgan a los 30 días; las solicitudes pendientes caducan a los 7 días (la cuenta desactivada se borra); cuando se borra un usuario, sus datos personales en el plugin se eliminan de inmediato; las solicitudes aprobadas se conservan mientras existe la cuenta. Los datos no se borran al desinstalar, salvo que marques esa opción.
Compatibilidad con clientes
- La cuenta nueva, la aprobación, las reglas y el enlace de Cashier se gestionan en el servidor: 🟢 la cuenta creada funciona en cualquier app.
- Página pública de registro: cualquier navegador — ✅ escritorio y teléfono (pruebas automatizadas en Chrome).
- Enlace + QR en el texto de la pantalla de inicio de sesión (Branding → Login disclaimer, no se modifica ningún archivo): Jellyfin Web ✅; apps oficiales que muestran este texto: ❔ no probadas.
- TVs: usa el Quick Connect nativo de Jellyfin: el código de la TV se escribe en el formulario y la TV inicia sesión cuando la cuenta se activa (✅ a nivel de API; ❔ no probado en Android TV real, Swiftfin, Findroid, Kodi, Infuse, Streamyfin).
Leyenda: ✅ verificado (prueba de extremo a extremo o en el dispositivo) · 🟢 en el servidor, funciona con cualquier cliente (por diseño, sin prueba específica para cada cliente) · ➖ no aplicable · ❔ no probado.
Licencia
El plugin es de código abierto (GPL-3.0). Las compilaciones listas para instalar son públicas, igual que el código fuente. Lo que compras es la suscripción: la licencia para usar el plugin en un servidor de Jellyfin, las actualizaciones que incluye tu plan y el soporte: cada actualización mientras la suscripción esté activa, a través de tu repositorio privado de plugins, y ayuda cuando algo no funcione. El plugin comprueba la clave de suscripción una vez al día; sin una suscripción válida se detiene hasta que renueves (no se borra nada). Mensual, anual o de por vida (la de por vida incluye un año de actualizaciones), o incluido en el paquete para Jellyfin. 30 días de prueba gratis.
Código fuente. Para cada versión, el código fuente correspondiente completo es público, junto a la compilación, en el registro de cambios, y también en tu cuenta (Cuenta → Licencias, Código fuente); cada archivo comprimido contiene el texto completo de la GPL-3.0 (LICENSE). Si necesitas el código fuente de una versión que ya no puedes descargar, pídenoslo y te lo enviamos. Consulta la sección 10 del EULA.
