Wenn du einen Emby-Server für Familie und Freunde betreibst, kennst du die Routine: Jemand fragt nach Zugang, du öffnest das Dashboard, denkst dir einen Benutzernamen aus, setzt ein Passwort, wählst Mediatheken aus, prüfst die Jugendschutzeinstellungen – und nächste Woche machst du das Ganze noch einmal. Das skaliert nicht, und bei jedem von Hand angelegten Konto kann man eine Richtlinie vergessen oder zu viel freigeben.
Registration ist ein Emby-Plugin, das eine öffentliche Registrierungsseite unter deiner eigenen Emby-Adresse bereitstellt. Die Leute legen ihr Konto selbst mit einem Zugangscode an, den du ihnen gibst, und du behältst die Kontrolle durch Freigabe, Familiencodes, Bot-Schutz und einen Vorlagenbenutzer, der festlegt, was ein neues Konto sehen darf. Diese Anleitung führt durch ein praktisches Setup: Codes, Freigabe, Vorlagen und die Anti-Bot-Grundlagen.
Ein kurzer Hinweis vorab: Das ist für legale, selbst gehostete Medien gedacht, die dir gehören oder für die du eine Lizenz hast. Lade nur Leute ein, denen du vertraust, und halte die Regeln des Servers klar.
Voraussetzungen
- Emby Server 4.10.1 oder neuer.
- Dein Emby-Server muss für die Personen erreichbar sein, die sich registrieren wollen – direkt oder über einen Reverse Proxy.
- Ein MediaLab Works Konto mit einer Lizenz für diesen Server (monatlich, jährlich, lebenslang oder Teil des Emby-Bundles). Zum Testen gibt es eine kostenlose 30-Tage-Testversion. Eine Lizenz pro Emby-Server.
- Zugriff auf das Emby-Dashboard. Die Admin-Seite des Plugins öffnest du im Browser, weil die Emby-App Plugin-Seiten blockiert.
Schritt 1 — Plugin installieren und Lizenz aktivieren
- Melde dich in deinem MediaLab Works Konto an, öffne Licenses und lade die Plugin-DLL herunter. Der Download ist mit einem aktiven Abo, einer lebenslangen Lizenz innerhalb ihres Update-Zeitraums oder während der Testversion verfügbar.
- Kopiere die DLL in den Emby-Plugin-Ordner und starte Emby Server neu:
- Linux (Paket):
/var/lib/emby/plugins/ - Docker: der Ordner
pluginsim Emby-Konfigurationsvolume - Windows:
%AppData%\Emby-Server\programdata\plugins\
- Linux (Paket):
- Öffne Emby Dashboard → Plugins, klicke auf das Plugin, füge deinen Lizenzschlüssel ein und speichere. Das Plugin kontaktiert den Lizenzserver, bindet den Schlüssel an diesen Emby-Server und zeigt die Lizenz als Active an.
Die Lizenz wird einmal täglich und bei jedem Emby-Start geprüft. Ohne Internet läuft das Plugin nach der letzten erfolgreichen Prüfung noch 7 Tage weiter. Ohne gültige Lizenz wird das Plugin gestoppt: Automatische Aufgaben laufen nicht, und die öffentliche Registrierungsseite zeigt „unavailable“ an – bestehende Konten, Codes und Einstellungen bleiben aber unangetastet.
Schritt 2 — Grundlagen konfigurieren
Öffne Dashboard → Plugins → Registration. Die Konfigurationsseite hat eine kurze Liste von Einstellungen:
| Einstellung | Funktion |
|---|---|
| Template user | Neue Konten übernehmen Mediatheken und Richtlinien von diesem Benutzer. |
| Approval required | Konten sind deaktiviert, bis du sie auf der Plugin-Seite freigibst. |
| Access codes | Codes anlegen: verbleibende Nutzungen, Ablauf, Familiencode (optional). |
| Anti-bot | Standardmäßig an; begrenzt außerdem die Versuche pro IP. |
| Public URL | Die Adresse, unter der das Formular ausgeliefert wird, z. B. https://emby.example.com/registration. |
Setze zuerst die Public URL. Das ist die Adresse, die die Leute öffnen werden, also muss sie zu dem passen, was dein Reverse Proxy tatsächlich ausliefert. Wenn du hinter einem Proxy stehst, stelle sicher, dass der Registrierungspfad dort erlaubt ist – ein nicht erreichbares Formular liegt fast immer an einer Proxy-Regel, nicht am Plugin.
Schritt 3 — Vorlagenbenutzer anlegen
Das ist der Schritt, der dir später die meiste Arbeit spart. Ein Vorlagenbenutzer ist ein normales Emby-Konto, dessen Mediatheken, Jugendschutzeinstellungen und Richtlinien auf jedes neue Konto kopiert werden, das über die Registrierungsseite angelegt wird.
Lege in Emby ein Konto an, das „ein neuer Benutzer auf diesem Server“ repräsentiert: die Mediatheken, die er sehen soll, die Jugendschutzeinstellungen, die du als Standard willst, und nicht mehr. Wähle es dann in den Plugin-Einstellungen als Template user aus.
Da die Kopie bei der Kontoerstellung passiert, schreibt eine spätere Änderung der Vorlage bestehende Konten nicht um – sie betrifft nur neue. Denk daran, wenn sich dein Mediathek-Layout ändert.
Schritt 4 — Zwischen Freigabemodus und sofortigen Konten entscheiden
Approval required hält jedes neue Konto deaktiviert, bis du es auf der Plugin-Seite freigibst. Die Person kann das Formular ausfüllen, aber niemand kommt rein, bis du zustimmst. Für einen Server, der einem größeren Kreis offensteht, ist das der sicherere Standard: Du siehst die Anfrage und entscheidest.
Ist die Freigabe aus, wird das Konto sofort angelegt und ist nutzbar. Das ist bequem für eine kleine Gruppe, die du schon kennst, aber dann entscheidet der Zugangscode darüber, wer reinkommt.
So oder so wird das Konto zum Zeitpunkt der Anfrage deaktiviert angelegt, und das Passwort wird von Emby verwaltet; das Plugin speichert keine Passwörter.
Schritt 5 — Zugangscodes ausgeben
Zugangscodes sind das Tor. In den Plugin-Einstellungen legst du Codes an mit:
- Uses left — ein einmalig nutzbarer Code für eine Person oder ein mehrfach nutzbarer Code für eine Gruppe.
- Expiry — danach funktioniert der Code nicht mehr.
- Family code (optional) — gruppiert zusammengehörige Konten, damit du sie gemeinsam sehen und verwalten kannst.
Ein praktisches Muster: ein einmalig nutzbarer Code pro Person für individuelle Einladungen und ein Familiencode für einen Haushalt, damit die Konten in deiner Übersicht verknüpft bleiben. Wird ein Code abgelehnt, prüfe zuerst die verbleibenden Nutzungen und den Ablauf auf der Plugin-Seite – das sind die zwei üblichen Ursachen.
Sobald der Code existiert, schickst du den Registrierungslink zusammen mit dem Code. Die Person wählt auf dem öffentlichen Formular einen Benutzernamen und ein Passwort, das mit deinem Servernamen gebrandet ist.
Schritt 6 — Bots draußen halten
Die Anti-Bot-Prüfung ist standardmäßig an, und das Plugin begrenzt außerdem die Versuche pro IP. Lass sie an. Wenn du die stärkere Prüfung willst, kannst du eigene Cloudflare-Turnstile-Schlüssel eintragen; diese Option ist standardmäßig aus und nur aktiv, wenn du Schlüssel hinterlegst. Ist sie an, lädt der Browser des Besuchers das Turnstile-Widget, und dein Server prüft die Antwort, indem er den geheimen Schlüssel, das Token und die IP-Adresse des Besuchers an challenges.cloudflare.com sendet.
Ein Datenschutz-Detail, das du kennen solltest: Beim Absenden des Formulars prüft das Plugin das Passwort gegen Have I Been Pwned – Pwned Passwords, indem es nur die ersten 5 Zeichen des SHA-1-Hashes des Passworts sendet (k-Anonymität, mit Padding). Das Passwort und der vollständige Hash verlassen deinen Server nie. Du kannst das abschalten, und wenn der Dienst nicht erreichbar ist, läuft die Registrierung weiter.
Schritt 7 — Den Link zu den Leuten bringen
Die öffentliche Registrierungsseite funktioniert in jedem Browser, auf Desktop und Handy. Auf dem Anmeldebildschirm ist der Button „Create account“ nur in Emby Web verfügbar: Das Plugin fügt ein Skript in dashboard-ui/index.html ein, das nach Emby-Updates erneut angewendet wird. Native Emby-Apps (Android, iOS, Android TV, Samsung, LG, Roku, Apple TV) können diesen Button nicht anzeigen, also schick diesen Leuten den Link direkt.
Für TVs erkennt die Seite TV-Browser und zeigt einen QR-Code für das Handy an. QR-Codes werden auf dem Server erzeugt.
Alltag
- Erstelle einen Zugangscode und schicke den Registrierungslink plus den Code.
- Die Person wählt einen Benutzernamen und ein Passwort; bei aktiver Freigabe bestätigst du das Konto auf der Plugin-Seite.
- Familiencodes lassen dich zusammengehörige Konten gemeinsam sehen und verwalten.
Tipps und Fehlerbehebung
- Das Formular ist nicht erreichbar. Stelle sicher, dass der Pfad von deinem Reverse Proxy erlaubt ist und die Public URL dazu passt.
- Ein Code wird abgelehnt. Prüfe verbleibende Nutzungen und Ablauf auf der Plugin-Seite.
- Der Button auf dem Anmeldebildschirm ist verschwunden. Er wird nach Emby-Updates erneut angewendet; lässt er sich nicht wiederherstellen, wird das Log nur gesendet, wenn das automatische Log-Senden aktiv ist.
- E-Mail. Es wird nichts gesendet, bis du SMTP konfigurierst. Danach erhalten Antragstellende eine Bestätigung und die Entscheidung (angenommen oder abgelehnt) plus die von dir verfasste Zugangsnachricht, die ein generiertes Passwort enthalten kann. Admin-Benachrichtigungen sind standardmäßig aus. STARTTLS ist der Standard.
- Telegram-Benachrichtigungen sind optional und standardmäßig aus. Wenn aktiviert, enthalten Admin-Nachrichten die Anfragedaten (Name, Benutzername, E-Mail, Telefon, IP, Cloudflare-Land).
- Daten auf der Festplatte. Anfragen werden in
data/registrations.jsongespeichert (Modus 600). Abgelehnte, abgelaufene oder gelöschte Anfragen werden nach 30 Tagen bereinigt; ausstehende Anfragen laufen nach 7 Tagen ab, und das deaktivierte Konto wird gelöscht. Wird ein Benutzer gelöscht, werden seine personenbezogenen Daten im Plugin sofort gelöscht. Bei der Deinstallation werden Daten nur gelöscht, wenn du diese Option aktivierst. - Geheimnisse. Das SMTP-Passwort, das Telegram-Token, das Turnstile-Secret und der HMAC-Schlüssel des Formulars werden im Ruhezustand in
secrets.enc.jsonverschlüsselt (AES-256-GCM) und nie an den Browser gesendet.
Fazit
Eine öffentliche Registrierungsseite mit Zugangscodes macht aus einer wiederkehrenden Admin-Aufgabe ein einmaliges Setup: Ein Vorlagenbenutzer legt die Standards fest, der Freigabemodus hält dich im Bilde, und Codes plus Anti-Bot-Prüfung entscheiden, wer überhaupt fragen darf. Wenn du weiter gehen willst, funktioniert das Plugin auch mit dem Cashier-Plugin für bezahlte Pläne und mit Quick Connect für die Anmeldung per Handy.
Die vollständige Referenz findest du im Benutzerhandbuch, und das Plugin auf der Registration-Produktseite. Mehr Material zum Selbsthosten gibt es in unserer Wissensdatenbank und den FAQ; wenn etwas nicht zu deinem Setup passt, kontaktiere uns.