Registration — page d’inscription Jellyfin

Permettez aux visiteurs de demander un compte Jellyfin depuis une page d’inscription publique, avec protection anti-robots, approbation par l’administrateur et droits par défaut minimaux.

Public sign-up page for a Jellyfin server: username, name, email, phone, password and an optional profile PIN1 sur 8

Registration ajoute une page d’inscription publique à votre serveur Jellyfin : les visiteurs demandent eux-mêmes un compte, et vous décidez qui entre. Le compte est créé désactivé, caché de l’écran de connexion et avec des droits minimaux ; vous l’approuvez depuis le tableau de bord Jellyfin.

Ce qu’il fait

  • Page publique sur https://<your server>/Registration/Page, en anglais et en roumain, pensée d’abord pour les téléphones : nom d’utilisateur (vérifié pendant la saisie), nom, e-mail, numéro de téléphone au format international, mot de passe avec indicateur de robustesse.
  • Modes : approbation manuelle (par défaut), code d’invitation uniquement, ou automatique. La confirmation par e-mail peut être activée séparément.
  • Approbation dans Tableau de bord → Registration → Requests : demandes en attente et traitées, recherche, approbation ou rejet une par une ou en masse, export CSV.
  • Droits par défaut minimaux : pas d’administration, de téléchargements, de synchronisation ni de suppression ; le compte n’apparaît pas sur l’écran de connexion. Bibliothèques : toutes, ou uniquement celles que vous choisissez ; limites facultatives pour les flux simultanés et le débit à distance.
  • Codes d’invitation : un code à usage unique qui se renouvelle après utilisation, et un code familial facultatif pour les personnes vivant sous le même toit.
  • Un compte par personne : le même appareil, numéro de téléphone ou navigateur et réseau sont bloqués ou signalés, règle par règle.
  • Anti-robots : preuve de travail dans le navigateur, Cloudflare Turnstile facultatif, champ piège caché, jetons de formulaire signés à usage unique, limites de débit par IP et par réseau, domaines d’e-mail jetables refusés, et aucun accès depuis les centres de données, les VPN commerciaux ou Tor.
  • Notifications dans le journal d’activité Jellyfin, par e-mail et sur Telegram.
  • Lien sur l’écran de connexion : un lien Create an account et un code QR sur l’écran de connexion Jellyfin tant que l’inscription est ouverte.
  • Fonctionne avec Cashier pour vendre des abonnements payants sur votre serveur.

Prérequis

  • Jellyfin Server 12.2 ou plus récent.
  • Le serveur joignable en HTTPS par les personnes qui s’inscrivent (directement ou via un proxy inverse).

Questions fréquentes

Comment laisser les utilisateurs créer leur propre compte sur Jellyfin ? Installez Registration, ouvrez Tableau de bord → Registration, choisissez les bibliothèques et le mode, puis activez Registration open et partagez le lien de la page (ou le code QR de Send access). Avec l’approbation activée, chaque demande vous attend dans l’onglet Requests. Voir le guide.

Les robots peuvent-ils créer des comptes ? La page combine preuve de travail, Turnstile facultatif, limites de débit et contrôles réseau ; les navigateurs automatisés sont refusés, et avec l’approbation activée, rien ne devient un compte sans vous.

Ce qu’il envoie et où

  • Have I Been Pwned – Pwned Passwords (api.pwnedpasswords.com), activé par défaut : à la soumission du formulaire, seuls les 5 premiers caractères du hachage SHA-1 du mot de passe sont envoyés (k-anonymat, avec padding) ; le mot de passe et le hachage complet ne quittent jamais le serveur. Peut être désactivé. Si le service est en panne, l’inscription continue.
  • Cloudflare Turnstile (challenges.cloudflare.com) — facultatif, désactivé par défaut (uniquement si vous saisissez vos propres clés) : le navigateur du visiteur charge le widget Turnstile ; le serveur vérifie la réponse en envoyant la clé secrète, le jeton et l’adresse IP du visiteur.
  • E-mail via votre serveur SMTP (rien tant que vous n’avez pas configuré SMTP ; STARTTLS par défaut) : au demandeur — confirmation, décision (approuvé/rejeté), le message d’accès rédigé par l’administrateur (peut contenir un mot de passe généré) ; à l’administrateur — des notifications (désactivées par défaut). Les plugins Cashier et Security Notifications peuvent envoyer des e-mails via ce SMTP.
  • Telegram (api.telegram.org) — facultatif, désactivé par défaut : notifications à l’administrateur avec les données de la demande (prénom/nom, nom d’utilisateur, e-mail, téléphone, IP, pays Cloudflare). Le même contenu est envoyé à l’e-mail de l’administrateur s’il est activé.
  • Pas de recherche géo/ASN en ligne : le pays provient de l’en-tête CF-IPCountry (si le serveur est derrière Cloudflare) ; le type de réseau (centre de données/Tor) provient d’une base ASN locale (par ex. celle qu’Access Log télécharge), sans aucune requête réseau.
  • La page d’inscription publique ne charge que les propres fichiers du plugin (plus Turnstile s’il est activé) ; les codes QR sont générés sur le serveur. Les boutons de partage WhatsApp/Telegram de la page d’administration sont de simples liens que l’administrateur ouvre.
  • Plus le client de licence, le même dans chaque plugin : voir Licences et confidentialité dans nos plugins.

Stocké localement :

  • data/registrations.json (mode 600) : par demande — nom d’utilisateur, prénom/nom, e-mail, téléphone, code d’invitation, IP, pays Cloudflare, User-Agent, langue, heure de consentement, hachage du jeton d’e-mail (pas le jeton), sous-réseau, identifiant d’appareil haché, empreinte du navigateur, FAI (ASN), drapeaux ; plus les codes d’invitation/d’accès, les blocages et les statistiques quotidiennes.
  • Le plugin ne stocke pas les mots de passe : le compte Jellyfin est créé (désactivé) au moment de la demande, le mot de passe étant géré par le serveur ; l’approbation ne fait que l’activer.
  • Configuration du plugin : mot de passe SMTP, jeton Telegram, secret Turnstile, clé HMAC du formulaire.
  • Dans le navigateur du visiteur : un identifiant d’appareil signé (cookie + localStorage).
  • Conservation : les demandes rejetées/expirées/supprimées sont purgées après 30 jours ; les demandes en attente expirent après 7 jours (le compte désactivé est supprimé) ; quand un utilisateur est supprimé, ses données personnelles dans le plugin sont effacées immédiatement ; les demandes approuvées sont conservées tant que le compte existe. Les données ne sont pas supprimées lors de la désinstallation, sauf si vous cochez cette option.

Compatibilité avec les clients

  • Nouveau compte, approbation, règles et lien Cashier sont côté serveur : 🟢 le compte créé fonctionne dans n’importe quelle application.
  • Page d’inscription publique : tout navigateur — ✅ ordinateur et téléphone (tests automatisés dans Chrome).
  • Lien + QR dans le texte de l’écran de connexion (Branding → Login disclaimer, aucun fichier modifié) : Jellyfin Web ✅ ; applications officielles qui affichent ce texte : ❔ non testé.
  • Téléviseurs : utilise le Quick Connect natif de Jellyfin : le code du téléviseur est saisi dans le formulaire et le téléviseur se connecte quand le compte devient actif (✅ au niveau de l’API ; ❔ non testé sur de vrais Android TV, Swiftfin, Findroid, Kodi, Infuse, Streamyfin).

Légende : ✅ vérifié (test de bout en bout ou sur l’appareil) · 🟢 côté serveur, fonctionne avec tout client (par conception, sans test propre à un client) · ➖ non applicable · ❔ non testé.

Licence

Le plugin est open source (GPL-3.0). Les versions compilées prêtes à installer sont publiques, comme le code source. Ce que vous achetez, c’est l’abonnement : la licence d’utilisation du plugin sur un serveur Jellyfin, les mises à jour comprises dans votre formule et le support : chaque mise à jour pendant que l’abonnement est actif, via votre dépôt de plugins privé, et de l’aide quand quelque chose ne fonctionne pas. Le plugin vérifie la clé d’abonnement une fois par jour ; sans abonnement valide, il s’arrête jusqu’au renouvellement (rien n’est supprimé). Mensuel, annuel ou à vie (la licence à vie comprend un an de mises à jour), ou inclus dans le pack Jellyfin. Essai gratuit de 30 jours.

Code source. Pour chaque version, le code source complet correspondant est public, à côté de la version compilée, dans l’historique des versions, et aussi dans votre compte (Compte → Licences, Code source) ; chaque archive contient le texte intégral de la GPL-3.0 (LICENSE). Si vous avez besoin du code source d’une version que vous ne pouvez plus télécharger, écrivez-nous et nous vous l’envoyons. Voir la section 10 de la Licence (CLUF).

Fonctionne au mieux avec medialab Server

Ce plugin fonctionne sur Jellyfin officiel 12.2 ou plus récent. Sur medialab Server, notre serveur basé sur Jellyfin, avec les mêmes données, bibliothèques, utilisateurs et applications, il fonctionne mieux :

  • Verified – medialab. Le serveur vérifie la signature de nos plugins et vous montre que les fichiers sont exactement ceux que nous avons publiés. Un plugin modifié après sa publication est signalé.
  • Intégré à l’interface. Les plugins peuvent ajouter des boutons et des liens dans le menu de vos utilisateurs (par exemple « TV », « Share ») sans configuration web manuelle.
  • Prioritaire par défaut. Les plugins medialab passent en premier là où cela compte : tuners TV en direct, sources de guide et fournisseurs de sous-titres. L’ordre reste le vôtre : vous pouvez le modifier à tout moment.
  • Le catalogue medialab.works inclus, avec une installation sans confirmations supplémentaires.
  • Mises à jour depuis l’interface web, sans terminal (avec Self-Update de MediaLab) : vérifiez, mettez à jour et revenez en arrière depuis le tableau de bord ; si une nouvelle version ne démarre pas, le serveur revient de lui-même à la version précédente, avec vos données intactes.
  • Le même Jellyfin, à jour. medialab Server suit chaque semaine les versions stables de Jellyfin 12.x ; une nouvelle version n’est publiée qu’après avoir réussi tous les tests, y compris ceux de nos plugins.

Les applications Jellyfin (Android, iOS, TV, web) se connectent exactement comme à Jellyfin officiel.

Pour l’installer, lancez l’image de conteneur (guide) ou, sur Debian 12, les paquets apt, qui remplacent jellyfin-server et jellyfin-web en conservant vos données en place (guide).

medialab Server est un logiciel libre (GPL-2.0), basé sur Jellyfin. Le code source est public : medialab-server et medialab-server-web.

Configuration requise

  • Jellyfin Server 12.2 ou plus récent (Linux, Windows ou Docker)
  • Le serveur accessible en HTTPS par les personnes qui s’inscrivent
  • Open source (GPL-3.0) : le code source de chaque version est dans votre compte

Dernière version

1.0.6
publiée le 20 oct. 2026
Voir toutes les modifications →

La version compilée est publique ; l’utilisation du plugin nécessite une licence ou l’essai gratuit de 30 jours.