Jitsi Meet ist eine Open-Source-Videokonferenzsoftware, die Sie selbst hosten können. Es ist eine gute Alternative zu proprietären Diensten wie Google Meet oder Zoom.
Jitsi Meet kann mit anderen Open-Source-Tools wie Nextcloud, Rocket.Chat oder Synapse (Matrix-Implementierung) integriert werden, um Ihnen eine umfassende Lösung zu bieten.
Mit einigen Einschränkungen kann Jitsi Meet kostenlos auf ihrem Server verwendet werden. Für Premium-Funktionen können Sie sich für Jitsi as a Service von Jitsi-Entwicklern entscheiden. Sie können es auch auf Ihrem eigenen Server bereitstellen? Ich helfe Ihnen beim Selbsthosting.
Bereitstellen von Jitsi Meet mit Docker
Die Bereitstellung von Jitsi ist mit Docker unglaublich einfach. Ich werde Ihnen die Schritte für die Bereitstellung von Jitsi zeigen. Ich werde sowohl den Reverse-Proxy als auch die reguläre Methode behandeln.
So verwenden Sie Nginx Reverse Proxy mit mehreren Docker-AppsErfahren Sie, wie Sie mithilfe von Nginx Reverse Proxy und Docker-Containern mehrere Webdienste auf demselben Server bereitstellen können.

Voraussetzungen
Es gibt ein paar Dinge, die erledigt werden müssen, bevor Sie fortfahren.
Grundkenntnisse von Docker und Containern: Dies ist kein Muss, wie alle unsere Tutorials, aber schön zu haben.
Eine benutzerdefinierte Domäne: Diese Bereitstellung wird nicht über IP bereitgestellt, das heißt, ich werde Sie durch die Bereitstellung unter einer tatsächlichen Domäne (oder Unterdomäne) mit HTTPS führen. Bereitstellungen wie HTTP://[irgendeine IP]:[irgendein Port] eignen sich gut zum Testen, erfüllen in diesen Anleitungen jedoch keinen Zweck.
Ein Linux-Server, entweder ein physischer oder in der Cloud: Ich empfehle die Verwendung von Linode, aber Sie können jeden anderen Anbieter wie DigitalOcean, Vultr oder UpCloud verwenden. Die Bereitstellung unter AWS kann sehr plattformspezifisch sein und darauf werde ich hier nicht eingehen.
Laut offizieller Empfehlung wäre ein Server mit 4 GB Speicher mit einem Dual-Core-Prozessor für etwa 10-20 Benutzer geeignet.
Linode | Die unabhängige offene Cloud für EntwicklerUnsere Mission ist es, Innovationen zu beschleunigen, indem wir Cloud Computing einfach, erschwinglich und für alle zugänglich machen.


Optional unser Reverse-Proxy-Setup: Wenn Sie es hinter einen Reverse-Proxy stellen möchten, damit Sie mehrere Webdienste auf demselben Server bereitstellen können. Wenn Jitsi die einzige Anwendung ist, die auf dem Server ausgeführt wird, benötigen Sie den Reverse-Proxy nicht.
DNS-Einträge ändern
Einen Domainnamen zu haben ist nicht genug. Sie müssen sicherstellen, dass auch die DNS-Einträge vorhanden sind. Für dieses Tutorial werde ich eine Domain openexperiment.in verwenden, die ich schon eine ganze Weile herumliegen habe.
Stellen Sie sicher, dass Sie alle Instanzen der Domäne aus den Beispielen in Ihre Domäne ändern.
Sobald Sie eine Domäne haben und einen Server bereitgestellt haben (nicht mit Jitsi, nur den Server), sammeln Sie die IP-Adressen des Servers (beide IPv4 und IPv6) und fügen Sie jeweils A- und AAAA-Einträge hinzu. Danach müssen Sie auch einen CNAME-Eintrag hinzufügen. Sie können eine bestimmte Subdomain hinzufügen oder wie ich einen Platzhaltereintrag hinzufügen (wenn Sie sie auf der Hauptdomain hosten).
Sehen Sie sich den Screenshot unten an, wenn Sie immer noch verwirrt sind. Ich habe die tatsächlichen IP-Adressen unkenntlich gemacht (ich bin sehr verschwiegen ... shhh).

Möglicherweise müssen Sie einige Zeit warten, bis die DNS-Änderungen wirksam werden. Sie können dies mit dem Ping-Befehl überprüfen.
ping
die Domäne, bis Sie die IP-Adresse Ihres Servers wie folgt sehen -
❯ ping openexperiment.in -4
PING openexperiment.in (xxx.xxx.xxx.xxx) 56(84) bytes of data.
^C64 bytes from xxx.xxx.xxx.xxx: icmp_seq=1 ttl=55 time=36.6 ms
--- openexperiment.in ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 36.610/36.610/36.610/0.000 ms
Sie können auch den Befehl dig verwenden, um die DNS-Einträge zu überprüfen.
dig openexperiment.in +nocmd +nocomments
Sie sollten etwa Folgendes sehen
❯ dig openexperiment.in +nocmd +nocomments
;openexperiment.in. IN A
openexperiment.in. 2970 IN A xxx.xxx.xxx.xxx
;; Query time: 1 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Mar 07 11:38:20 IST 2021
;; MSG SIZE rcvd: 62
Die Jitsi Meet-Komponenten verstehen
Bevor Sie fortfahren, ist es meiner Meinung nach hilfreich zu wissen, was diese Komponenten sind und warum sie wichtig sind, zusammen mit den Komponenten, die Sie für diese Bereitstellung verwenden werden.
Wenn Sie sich nicht darum kümmern, springen Sie natürlich zum Bereitstellungsabschnitt dieses Artikels.
jitsi/web:neueste: Die Web-Benutzeroberfläche von Jitsi Meet, die Sie in Ihrem Browser sehen, befindet sich in diesem Bild. Zusammen mit Nginx für den Webserver.
jitsi/prosody:neueste: Dies ist der XMPP-Server, der für die Audio-/Videoanrufe oder die Text-Chats verantwortlich ist. Dies kann als das Herzstück von Jitsi betrachtet werden.
jitsi/jicofo:neueste: Die Fokuskomponente des XMPP-Servers, die für die Verwaltung der Videositzungen zwischen den Teilnehmern und der Videobrücke zuständig ist, dh die Konferenzen verwaltet. Dies ist eine weitere obligatorische Komponente von Jitsi.
jitsi/jvb:neueste: Die Jitsi Videobridge ist für die Weiterleitung der eingehenden Videokanäle an alle Teilnehmer verantwortlich.
Dies sind die obligatorischen Teile einer operativen Jitsi-Bereitstellung, und ich werde sie nur für diesen Leitfaden verwenden. Es gibt andere Komponenten wie Jibri, Jigasi, aber da sie optional sind, werde ich sie vorerst weglassen.
Genug gelesen, es ist Zeit für praktische Arbeit.
Wenn Sie dies zusammen mit einem Reverse-Proxy bereitstellen möchten, stellen Sie sicher, dass Sie dies eingerichtet haben, bevor Sie sich diesem nähern. So verwenden Sie Nginx Reverse Proxy mit mehreren Docker-AppsErfahren Sie, wie Sie mit Nginx Reverse-Proxy mehrere Webdienste auf demselben Server bereitstellen können und Docker-Container.

Klonen Sie das Docker-jitsi-meet-Repository
Dieses Repository enthält alle Dateien, die wir für diese Bereitstellung benötigen (mit offensichtlich einigen Änderungen).
Klonen Sie das Repository und ändern Sie Ihre PWD
in das geklonte Verzeichnis.
git clone https://github.com/jitsi/docker-jitsi-meet jitsi
cd jitsi
Beginnen Sie mit der Änderung der Umgebungsvariablen
Da Sie Docker verwenden, müssen Sie einige Umgebungsvariablen ändern. Kopieren Sie zunächst die Beispielkonfigurationsdatei.
cp env.example .env
Öffnen Sie nun die .env
Datei und sehen Sie sich die ersten 6 Umgebungsvariablen an.
Da es sich bei all diesen Komponenten im Grunde um eine Art Server handelt, die in Containern ausgeführt werden, müssen Sie sicherstellen, dass die Server wirklich die sind, für die sie sich ausgeben. Diese Geheimnisse sind aus diesem Grund da. Die Clients müssen sich zuerst authentifizieren, bevor sie eine Verbindung aufbauen.
Sie müssen diese Geheimnisse nicht selbst festlegen. Es gibt bereits ein Skript, das Ihnen das Leben erleichtert. Führen Sie den folgenden Befehl aus, während Sie sich im Repository-Verzeichnis befinden
./gen-passwords.sh
Nach der Ausführung können Sie .env
erneut öffnen Datei, und die Geheimnisse sollten ausgefüllt werden.
Sie werden all diese Geheimnisse für diese Bereitstellung nicht benötigen, aber lassen Sie sie in Ruhe, Sie müssen sie nicht entfernen oder auskommentieren.
Hier wird es jetzt drei Unterabschnitte geben, einen für die gemeinsamen Variablenzuweisungen (Reverse-Proxy oder kein Reverse-Proxy), einen weiteren für den Reverse-Proxy und den letzten für keinen Reverse-Proxy. Alle gehen in die .env-Datei.
Gemeinsame Variablen (sowohl für die Reverse-Proxy- als auch für die Nicht-Reverse-Proxy-Methode)
Hier sind die Variablen, die beiden Bereitstellungsmethoden gemeinsam sind, und Sie fügen sie der .env-Datei hinzu.
KONFIG: Sie können ändern Sie den Wert von diesem, aber es ist nicht notwendig. Der Wert dieser Variablen ist ein Verzeichnis in Ihrem Host, das in den Containern per Bind gemountet wird, um persistente Daten zu speichern. Es liegt also ganz bei Ihnen, dies zu ändern.
PUBLIC_URL: Die Domäne Jitsi wird gehostet (mit dem Protokoll). In meinem Fall ist der Wert https://meet.openexperiment.in
ENABLE_AUTH: Möchten Sie eine Authentifizierung? Bei der Authentifizierung muss der Benutzer einen Benutzernamen und ein Passwort eingeben, bevor er einem Meeting beitreten oder ein Meeting erstellen kann. Wenn ja, kommentieren Sie diese Zeile aus und stellen Sie sicher, dass sie auf 1 gesetzt ist.
AUTH_TYPE: Wenn Sie ENABLE_AUTH auf 1 setzen würden, dann setzen Sie diesen auf "internal". Ich werde in diesem Artikel nicht auf die LDAP- oder JWT-Authentifizierung eingehen.
RESTART_POLICY: Neustartrichtlinie der Container. Der Standardwert ist unless-stopped
. Ich bevorzuge always
oder on-failure
.
TZ: Stellen Sie dies auf die Zeitzone Ihres Systems ein. Da meine Server in der UTC-Zeitzone laufen, muss ich sie nicht ändern.
Variablen für die Nicht-Reverse-Proxy-Methode
Wenn Sie keinen Reverse-Proxy verwenden, sollten Sie diese Variablen zur .env-Datei hinzufügen:
HTTP_PORT , HTTPS_PORT: Ändern Sie diese auf 80 bzw. 443. Dies sind die Ports, an die sich Ihr Container binden wird.
ENABLE_LETSENCRYPT: Setzen Sie dies auf 1, Sie benötigen HTTPS.
LETSENCRYPT_DOMAIN &LETSENCRYPT_EMAIL: Die Domäne, auf der Ihre Instanz gehostet wird, und Ihre E-Mail-ID für Ihre zertifikatsbezogenen Benachrichtigungen.
ENABLE_HTTP_REDIRECT: Setzen Sie dies auf 1, HTTP-Datenverkehr muss an HTTPS weitergeleitet werden.
ENABLE_HSTS: Dadurch werden die Browser in gewisser Weise gezwungen, eine vertrauenswürdige Verbindung zu verwenden. Setzen Sie diese auf 1.
Für Reverse-Proxy erforderliche Variablen
Wenn Sie sich für den Reverse-Proxy entschieden haben, sollten Sie diese Variablen zur .env-Datei hinzufügen:
DISABLE_HTTPS: Da HTTPS vom Webserver Ihres Reverse-Proxys verarbeitet wird, müssen Sie HTTPS nicht von Jitsi selbst aktivieren lassen.
ENABLE_HTTP_REDIRECT: Nicht erforderlich, setzen Sie dies auf 0. HTTP/HTTPS wird von unserem Reverse-Proxy verarbeitet.
VIRTUAL_HOST &LETSENCRYPT_HOST: Diese Variablen sind standardmäßig nicht vorhanden. Fügen Sie diese hinzu und verwenden Sie für die Werte den Domänennamen, unter dem Ihre Instanz gehostet werden soll. Weitere Informationen finden Sie in meinem Revere-Proxy-Artikel.
[NUR BEI VERWENDUNG VON REVERSE PROXY] Ändern Sie die Compose-Datei
Öffnen Sie die Datei docker-compose.yml
in Ihrem bevorzugten Texteditor.
Die einzige Dienstdefinition, die bearbeitet werden muss, ist der Webdienst. Ändern Sie es gemäß der folgenden Liste
- Entfernen Sie den Ports-Abschnitt. Sie müssen keinen Port mehr von Ihrem Container an den Host binden.
- Fügen Sie ein weiteres Netzwerk hinzu, dasselbe Netzwerk, das in Ihrer Reverse-Proxy-Konfiguration verwendet wird.
- Definieren Sie das Netzwerk am Ende der Compose-Datei wie folgt
networks:
net:
external: true
Angenommen, der Netzwerkname ist net
, ändern Sie es auf das, was Sie bei Ihrem eingestellt haben.
- Fügen Sie die Umgebungsvariablen
VIRTUAL_HOST
hinzu &LETSENCRYPT_HOST
wie so
- VIRTUAL_HOST
- LETSENCRYPT_HOST
Bereitstellen der Container
Sobald die Bearbeitung abgeschlossen ist, können Sie Jitsi mit docker-compose up -d
bereitstellen Befehl.
Stellen Sie sicher, dass Ihre Reverse-Proxy-Container ausgeführt werden, WENN Sie sich für die Reverse-Proxy-Methode entschieden haben.
Sie sind mit der Bereitstellung von Jitsi Meet fast fertig, mit Ausnahme des letzten Schritts, der darin besteht, authentifizierte Benutzer für Ihren Jitsi-Server zu erstellen.
Authentifizierte Benutzer erstellen
Wenn Sie die Authentifizierung aktiviert haben (mit ENABLE_AUTH
), müssen Sie die Benutzer registrieren, bevor Sie Jitsi verwenden können.
Das ist ganz einfach. Gehen Sie zum geklonten Repository-Verzeichnis und führen Sie einen Befehl ähnlich dem folgenden aus
docker-compose exec prosody prosodyctl --config=/config/prosody.cfg.lua register [USERNAME] meet.jitsi [PASSWORD]
Sie können einen Benutzer auch mit unregister
entfernen Befehl, wie ich ihn hier gezeigt habe:
docker-compose exec prosody prosodyctl --config=/config/prosody.cfg.lua unregister [USERNAME] meet.jitsi
Schließlich können Sie das Frontend von Jitsi Meet auf der angegebenen URL in einem Webbrowser überprüfen:

Haben Sie noch Fragen oder Anregungen? Bitte hinterlassen Sie einen Kommentar.
Wenn Ihnen dieses Tutorial gefällt und Sie möchten, dass wir weitere hilfreiche Inhalte produzieren, ziehen Sie bitte in Betracht, sich für die Pro-Mitgliedschaft zu entscheiden oder eine einmalige Spende zu leisten, um uns zu unterstützen :)