Jitsi Meet – eigener Videokonferenz Server mit Docker

Version: 25.09.15

Videokonferenzen gehören heute zum Alltag – ob im Homeoffice, bei Online-Kursen oder im privaten Austausch. Mit Jitsi Meet haben Sie die Möglichkeit, eine komplett eigene Videokonferenz-Plattform zu betreiben – unabhängig von externen Diensten und mit voller Kontrolle über Daten und Funktionen. 🛡️

Ein eigener Jitsi-Server eignet sich z. B. für:

  • 📚 Schulungen und Online-Kurse
  • 👥 Team-Meetings im Unternehmen
  • 🔒 Sichere, private Gespräche ohne Drittanbieter

Damit Sie erfolgreich starten können, sollten Sie ein paar Grundkenntnisse und Voraussetzungen mitbringen:

  • 🐧 Linux-Basics (Server-Administration, SSH, Pakete installieren)
  • 🐳 Erfahrung im Umgang mit Docker und Docker Compose
  • 🌐 Grundwissen über Netzwerke und Domains (DNS, Ports, SSL-Zertifikate)
  • ⚠️ !! eigener Turn / Coturn Server um Verbindungen von außen annehmen zu können! Grundvoraussetzung !! 🔥🔥

In diesem Tutorial zeige ich Ihnen Schritt für Schritt, wie Sie Ihren eigenen Jitsi Meet Server einrichten – von den Voraussetzungen bis hin zur lauffähigen Videokonferenz-Plattform.

Wir bedienen uns hierzu von einigen Elementen, die auf der offiziellen Jitsi Meet Konfigurationsseite entnommen werden können:

https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker

1. Installation:

Wir loggen uns dazu auf unserem Server (Linux Ubuntu / VPS) ein und erstellen in unserem Projektordner einen neuen Ordner „jitsi“ und navigieren anschließend zu diesem.

Innerhalb des Jitsi Ordner führen wir folgenden Befehl aus:

Wir schauen uns dann in dem Ordner mit „ls“ an wie die Datei heißt, die wir heruntergeladen haben und führen dann folgenden Befehl aus:

2. Konfiguration:

Danach:

Mit dem cp env Befehl zu .env kopieren wir die Beispiel Konfigurationsdatei von Jitsi Meet zu unser eigenen .env Datei, in die nachher unsere Konfiguration ergänzt wird.

Jetzt müssen wir noch starke Passwörter für die .env Datei erstellen, die dann dort auch direkt eingetragen werden. Einfach folgenden Befehl in dem „jitsi“-Ordner ausführen:

Nun erstellen wir die restlichen Konfigurationsdateien:

Nachdem alle config-Dateien erstellt wurden, starten wir das Docker Projekt kurz um es danach wieder auszuschalten:

Nun schauen wir uns die .env Konfigurationsdatei genauer an und ergänzen entsprechende Einträge:

Folgender Inhalt sollte (angepasst!) in der .env Datei stehen, damit alles funktioniert:

Wir müssen jetzt noch entsprechende User vergeben, da wir Jitsi Meet so eingestellt haben, dass nicht einfach Jeder, der die URL kennt eine Videokonferenz einberufen kann.

Wir starten dazu das Docker Projekt mit:

Wir wechseln nun in den „prosody“ Jitsi Container.

Anschließend können wir User (Konferenzleiter) mit folgendem Befehl erstellen:

Um einen User wieder zu löschen, folgender Befehl:

Und um alle User anzuzeigen:

Wir verlassen den „prosody“-Container anschließend wieder mit:

3. kurze Exkursion: Turn / Coturn Server

🔥 Die Konfiguration setzt einen funktionierenden turn / coturn Server voraus.‼️Und das man nach der Installation und Portfreigabe von Coturn (UDP Port 3478, 40000 – 41000 und TCP 3478 und bei TLS noch 5349) auch entsprechende User in Turn vergeben hat.

Kurzer Ausflug zur Uservergabe. Coturn / Turn config unter /etc/turnserver.conf:

Hiermit lassen sich die Coturn User in der DB anzeigen:

Und hiermit lassen sich neue User erstellen:

Nicht vergessen in der UFW-Firewall oder VPS-Firewall die entsprechenden Ports oben freizugeben!

4. Portfreigaben und NPM:

‼️ Jitsi Meet benötigt dringend noch den UDP Port 10000 zur Freigabe! ‼️(auch in der Firewall freigeben)

Bevor es in den NPM geht muss natürlich eine entsprechende Subdomain für unseren Videokonferenzserver bei dem Provider angelegt werden (DNS Eintrag mit Verweis auf die IP des Servers):

meeting.yourdomain.com

Im NPM (Nginx Proxy Manager) legen wir eine neue Domain (Proxy Host) an, zum Beispiel: meeting.yourdomain.com

Nach innen verweisen wir hierbei auf den HTTP Port 8000 und NPM kümmert sich um das SSL Zertifikat und die Verschlüsselung nach außen hin. Mit einem Klick auf „Save“ wird das Ganze gespeichert und die Konfiguration von unserem eigenen Jitsi Meet Server nach außen hin ist abgeschlossen.

5. Optional: eigenes „Branding“

Jetzt wollen wir noch ein individuelles „Branding“ vergeben, so dass auf der Startseite unserer „meeting.yourdomain.com“-URL nicht mehr „Jitsi Meet“ sondern z.B. „IT-Service-Commander“ steht:

Dazu muss eine entsprechende Sprachdatei gepatcht werden. Das kann man im Docker-Compose Container machen:

Nano-Editor installieren, da der Container diese nicht kennt:

Die Datei editieren:

Folgenden Auszug suchen und abändern:

Die Datei abspeichern und den Container neu starten:

Wenn man es allerdings dauerhaft lösen möchte muss man wie folgt vorgehen (bessere Variante):

In dem „jitsi“ Ordner (Docker Projektordner) folgende Datei anlegen:

Folgender Inhalt:

Auf dem Host die Verzeichnisstruktur anlegen:

Die Sprachdatei aus dem Container heraus ziehen:

Und die Datei auf dem Host bearbeiten (wie oben schon geschrieben die Passage mit Jitsi Meet abändern):

Zum Schluss noch einmal alles neu starten:

Fertig, das Branding sollte jetzt weg von Jitsi Meet sein und euer eigenes Branding enthalten.

6. Fertigstellung

Wir sind fertig und haben folgendes eingerichtet:

🖥️ Jitsi Meet Server

🔗 Verbunden mit Coturn / Turnserver, um die Erreichbarkeit sicherzustellen (nicht nur interne Verbindungen, sondern auch externe)

🌐 TCP und UDP Ports in der Firewall freigegeben.

🏷️ Zugriff über eine Subdomain für unseren Jitsi Meet Server.

🔒 Im NPM Manager SSL-Zertifikate vergeben.

🎨 Optional: eigenes Branding eingerichtet.

Fertig – einsatzbereiter Jitsi Meet Server!


bc1q8dxp9mlt3mkvaklu2vn8j6jteqyv53kschc90v

Dieses Bild hat ein leeres Alt-Attribut. Der Dateiname ist qrc.png

Lightning: itsc@strike.me