16.05.2021 Update: Mehrere kleinere Änderungen und Aktualisierungen vorgenommen.
Jitsi Meet kann sehr einfach ohne Installation mit einem Webbrowser genutzt werden (Jitsi Meet Anleitung). Neben den zahlreichen öffentlichen Jitsi Meet Servern kann auch sehr einfach eine eigene Instanz installiert werden. Dazu stehen für Ubuntu fertige Softwarepakete bereit und es gibt einen offiziellen Self-Hosting Guide.
Leistungsstarker Jitsi Meet Server (meet.scheible.it):
Für diese Anleitung habe ich Jitsi Meet auf einem Server mit dem Betriebssystem Ubuntu Server in der Version 18.04 installiert. Um die Installation durchzuführen, müssen ein SSH-Zugang und Root-Rechte vorhanden sein. Optimalerweise ist zudem eine Domain vorhanden, denn damit ist die Konfiguration einfacher und im Laufe der Installation kann ein SSL-Zertifikat unkompliziert (automatisch) erzeugt werden. Ich verwende hier exemplarisch die Subdomain meet.scheible.it. In der Firewall müssen die Ports 80 TCP, 443 TCP und 10000 UDP als zusätzliche Ports geöffnet werden.
Bei Tests hat sich gezeigt, dass virtuelle Server mit geteilten Ressourcen nur bedingt für einen eigenen Jitsi Meet Server geeignet sind. Das Streaming von mehreren Videos gleichzeitig erfordert Ressourcen, die schnell reagieren können. Daher sollten dedizierte Server mit eigener Hardware verwendet werden oder zumindest Server mit mit dedizierten CPU-Kernen, eigenem Arbeitsspeicher und einer schnellen Internetanbindung.
Die maximal mögliche Teilnehmerzahl an einem Jitsi Meet Online-Meeting genau zu beziffern ist sehr schwierig, da es immer sehr stark von der verwendeten Hardware des Jitsi Meet Servers abhängt und zudem davon wie viele Teilnehmer die Webcam aktiviert haben. Nach meiner eigenen Erfahrung war die Auslastung eines vServers mit vier CPU-Kernen, acht Gigabyte Arbeitsspeicher und einer ein Gigabit Internetverbindung bei 12 Usern mit aktiviertem Video bei ca. 25%. Also könnten insgesamt maximal 48 Teilnehmer diese Jitsi Meet Server gleichzeitig nutzen. Mit einem Dedicated Root Server (Hexa-Core CPU + SMT, 64GB Ram und Gigabit Internetverbindung) kamen 4 Meetings mit 70 Teilnehme gerade einmal auf eine CPU-Auslastung von 10%. Mit genügend serverseitiger Leistung können also mehrere Jitsi Meet Konferenzen mit zahlreichen Teilnehmern gleichzeitig durchgeführt werden.
Jitsi Meet Installation
Vor der Installation empfehle ich alle Pakete auf den aktuellen Stand zu bringen, das Softwarepaket apt-transport-https zu installieren und das Repository universe zu aktivieren.
# sudo apt update && sudo apt upgrade $ sudo apt install apt-transport-https $ sudo apt-add-repository universe
Für einen reibungslosen Betrieb muss in der Datei /etc/systemd/system.conf die Anzahl der zulässigen Prozesse eingetragen werden. Dazu müssen die folgenden Einträge am Ende hinzugefügt werden:
DefaultLimitNOFILE=65000 DefaultLimitNPROC=65000 DefaultTasksMax=65000
Damit die Einträge wirksam sind, muss der Dienst Systemd neugestartet werden:
$ sudo systemctl daemon-reload
Als erster Schritt muss die verwendetet Domain konfiguriert werden, damit die verschiedenen Module von Jitsi Meet reibungslos zusammenarbeiten können.
$ sudo hostnamectl set-hostname meet.scheible.it
Zusätzlich muss in der Datei /etc/hosts ebenfalls die Domain als localhost eingetragen werden. Dazu kann die Domain einfach in der ersten Zeile am Ende hinzugefügt werden.
01: 127.0.0.1 localhost meet.scheible.it
Als Nächstes müssen die Repositories von Jitsi Meet hinzugefügt werden. Damit werden dem Ubuntu System die Softwareverzeichnisse mitgeteilt.
$ curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg' $ echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null
Jetzt müssen die Softwarequellen noch aktualisiert werden, damit die Jitsi Meet Pakete bekannt sind.
$ sudo apt update
Danach kann die Jitsi Meet Software auf dem Server installiert werden. Mit dem einzelnen Paket werden alle notwendigen Bestandteile automatisch installiert, auch der NGINX Webserver. Gleichzeitig werden alle Konfigurationsdateien generiert.
$ sudo sudo apt -y install jitsi-meet
Während der Installation kommt eine Eingabe, bei der die Domain eingetragen werden muss. Danach erfolgt die Nachfrage zum SSL-Zertifikat. Wählt die Option „Generate a new self-signed certificate (You will later get a chance to obtain a Let’s encrypt certificate)” aus, um im Anschluss ein eigenes Let’s Encrypt zu generieren.
Nachdem die Installation abgeschlossen ist, kann das SSL-Zertifikat installiert werden. Hierbei wird das Projekt Let’s Encrypt eingebunden. Es ist damit möglich, ein kostenloses SSL-Zertifikat zu erstellen. Die Macher von Jitsi Meet haben dazu ein Script entwickelt, um die Einrichtung von Let’s Encrypt zu automatisieren. Nach dem Aufruf werden automatisch die notwendigen Softwarepakete installiert. Sobald dies abgeschlossen ist, muss nur noch eine E-Mailadresse eingegeben werden.
# /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
Jetzt ist der Jitsi Meet Server fertig installiert und zum Test kann die Domain aufgerufen werden.
Jitsi Meet Server konfigurieren
Um die Jitsi Meet Installation anzupassen bzw. zu individualisieren, ist das Verzeichnis /usr/share/jitsi-meet/ interessant. Das Logo links oben kann einfach durch eine eigene Datei überschrieben werden. Es liegt im Unterordner images und heißt watermark.png. Diese Schritte beschreibe ich im Artikel „Das Design von Jitsi Meet anpassen“.
Weitere Einstellungen können in der Datei /etc/jitsi/meet/meet.scheible.it-config.js vorgenommen werden. Der Dateinamen wir abhängig von der verwendeten Domain generiert und unterscheidet sich so bei jeder Installation. Dort können Voreinstellungen zum Thema Audio und Video vorgenommen werden. In dieser Datei sind die Einträge ebenfalls sehr gut dokumentiert.
Jede Jitsi Meet Installation sollte einen Link zum Impressum und zur Datenschutzerklärung aufweisen. Die Konfiguration beschreibe ich im Artikel „Datenschutzfreundliche Konfiguration von Jitsi Meet“.
Leider werden die Anpassungen in den Dateien interface_config.js und welcomePageAdditionalContent.html bei einem Update von Jitsi Meet überschrieben. Daher müssen die Einträge nach einem Update erneut gesetzt werden, am besten mit einem automatisierten Update Script. Diese Methode habe ich im Artikel Jitsi Meet Update Script beschrieben.
Skalierung von Jitsi Meet
DDie Anzahl der Teilnehmer mit aktiviertem Video variiert bei Jitsi Meet, je nachdem welche Ressourcen auf dem Server zur Verfügung stehen. Mehr zum Thema Anzahl an Teilnehmer beschreibe ich im Artikel „Geschwindigkeitsoptimierung von Jitsi Meet“. Um abzuwägen, ob die Ressourcen ausreichen, sollte die „Jitsi Meet Server Auslastung“ analysiert werden.
Um Jitsi Meet mit einer größeren Gruppe zu nutzen, müssen mehrere Server eingerichtet werden. Allerdings werden hierbei keine kompletten Installationen, sondern mehrere Jitsi Videobridges benötigt.
Es gibt die älteren Anleitungen “Tutorial video: How to Load Balance Jitsi Meet” und “New tutorial video: Scaling Jitsi Meet in the Cloud”, die sich mit der Skalierung beschäftigen. Allerdings sind sie sehr kurz geraten und überspringen ein paar Punkte. Sehr ausführlich und aktuell ist hingegen der Artikel „Jitsi Best Practice und Skalierung“ von Daniel Neuberger (NETWAYS).
Freifunk München hat ein sehr leistungsfähiges Jitsi Meet Server-Cluster mit insgesamt 20 Videobridges erstellt. Es gab eine Präsentation, wie dieses Projekt realisiert worden ist, dort werden viele interessante Punkte angesprochen. Im zugehörigen Wiki gibt es die dazugehörige Anleitung, wie die Konfiguration erfolgte.
Schnelle Installation
Sollen mehrere Jitsi Meet Server installiert werden, kann die Installation weiter optimiert werden. Die Befehle können mit dem &&-Operator zusammengefasst werden, dies nennt sich auch Liste von Kommandos. Bei dem &&-Operator muss die vorherige Bedingung oder der Vorgang ohne Fehler durchgeführt worden sein, damit die nachfolgende Anweisung durchgeführt wird. Schlägt ein Vorgang fehl, wird an dieser Stelle abgebrochen.
Damit im Fehlerfall leichter das Problem gesucht werden kann, habe ich die Installation in vier Schritte unterteilt. Als Erstes setzte ich die Variable JitsiMeetDomain mit der dazugehörigen Domain des Jitsi Meet Servers. Das hat den Vorteil, dass die Domain nur an einer zentralen Stelle angepasst werden muss.
# export JitsiMeetDomain=meet.scheible.it
Als Nächstes werden die Paketquellen und das System aktualisiert und die notwendigen Softwarepakete installiert.
# sudo apt update && sudo apt upgrade && sudo apt install apt-transport-https && sudo apt-add-repository universe && sudo apt update
Dann werden die Anzahl der zulässigen Prozesse und die gleichzeitigen Dateizugriffe eingetragen und der Dienst neu gestartet:
# sed -i 's/#DefaultLimitNOFILE=1024:524288/DefaultLimitNOFILE=65000/g' /etc/systemd/system.conf && sed -i 's/#DefaultLimitNPROC=/DefaultLimitNPROC=65000/g' /etc/systemd/system.conf && sed -i 's/#DefaultTasksMax=/DefaultTasksMax=65000/g' /etc/systemd/system.conf && systemctl daemon-reload
Anschließend wird der Domainname eingetragen. Hier findet die Variabel ihre Anwendung.
# sudo hostnamectl $JitsiMeetDomain && sed -i 's/127.0.0.1 localhost/127.0.0.1 localhost $JitsiMeetDomain/g' /etc/hosts
Und zum Schluss werden die Repositories von Jitsi Meet hinzugefügt und die Installation gestartet:
# curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg' && echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null && sudo apt update && sudo apt install jitsi-meet
Hier alle Befehle auf einmal:
# export JitsiMeetDomain=meet.scheible.it # sudo apt update && sudo apt upgrade && sudo apt install apt-transport-https && sudo apt-add-repository universe && sudo apt update # sed -i 's/#DefaultLimitNOFILE=1024:524288/DefaultLimitNOFILE=65000/g' /etc/systemd/system.conf && sed -i 's/#DefaultLimitNPROC=/DefaultLimitNPROC=65000/g' /etc/systemd/system.conf && sed -i 's/#DefaultTasksMax=/DefaultTasksMax=65000/g' /etc/systemd/system.conf && systemctl daemon-reload # sudo hostnamectl $JitsiMeetDomain && sed -i 's/127.0.0.1 localhost/127.0.0.1 localhost $JitsiMeetDomain/g' /etc/hosts # curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg'&& echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null
Jitsi Meet Docker Installation
Ein eigener Jitsi Meet Server kann auch per Docker installiert werden. Docker ist eine Reihe von Plattform-as-a-Service (PaaS)-Produkten, die Virtualisierung auf Betriebssystemebene nutzen, um Software in Paketen, die als Container bezeichnet werden, bereitzustellen. Container sind voneinander isoliert und bündeln ihre eigene Software, Bibliotheken und Konfigurationsdateien. Der Vorteil von Containern gegenüber von virtuellen Maschinen ist, dass sie weniger Ressourcen brauchen und schneller eingerichtet werden können. Damit können Docker- Anwendungen in kurzer Zeit ausprobiert werden, ohne dass eine komplexe Installation durchlaufen werden muss.
Jitsi Meet ist ebenfalls als Docker Container verfügbar. Im Blog von Jitsi wird das Konzept im Artikel „Jitsi meets Docker“ beschrieben. Der Container für Jitsi Meet selbst wird offiziell auf der Github Seite des Projektes beschrieben. Zur Installation des Containers kann entweder der Anleitung auf der Github Seite gefolgt werden oder einer der untenstehenden Anleitungen gefolgt werden:
Jitsi Meet Artikelserie
Dieser Blogbeitrag ist Teil der Artikelserie „Videokonferenzen mit Jitsi Meet“, die sich mit dem Open-Source-Webkonferenzsystem Jitsi für Video-, Web- und Telefonkonferenzen beschäftigt. Die Artikelserie zu Jitsi Meet umfasst die folgenden Themen:
Jitsi Meet Artikel für Anwender
- Liste mit öffentlichen Jitsi Meet Instanzen
- Anleitung für Jitsi Meet Videokonferenzen
- Jitsi Meet Anleitung für Moderatoren
- Jitsi Meet für Smartphones und Tablets
- Jitsti Meet Nutzung per Desktop App
- Tipps und Tricks mit Jitsi Meet
- Meine eigene Jitsi Meet Instanz
- Jitsi Meet Server mit ressourcensparender Konfiguration
- Neuer Jitsi Meet Testserver (Nightly Builds)
- Virtuelle Webcam in Jitsi Meet verwenden
- Virtuelle Desktops für die Freigabe nutzen
- Neues zu Jitsi Meet – Update und Server
- Breakout Rooms in Jitsi Meet
Jitsi Meet Artikel für Administratoren
- Installation eines eigenen Jitsi Meet Servers
- Jitsi Meet unter Ubuntu 20.04 installieren
- Mehrere Jitsi Meet Varianten per API
- Geschwindigkeitsoptimierung von Jitsi Meet
- Das Design von Jitsi Meet anpassen
- Datenschutzfreundliche Konfiguration von Jitsi Meet
- Jitsi Meet Update Script
- Jitsi Meet Server Auslastung
- Jitsi Meet Statistik als Grafana Dashboard
- Neues Jitsi Meet Feature: Lobby Wartebereich
- Jitsti Meet und die Log4Shell Sicherheitslücke
Changelog
16.05.2021Mehrere kleinere Änderungen und Aktualisierungen vorgenommen.
06.01.2021Abschnitt schnelle Installation hinzugefügt.
23.11.2020Mehrere kleinere Ergänzungen und Korrekturen.
24.10.2020Jitsi Meet Installationsanleitung aktualisiert.
15.07.2020Abschnitt zur effizienten Nutzung des Arbeitsspeichers ergänzt.
17.05.2020Die Anleitung wurde aktualisiert.
17.05.2020Abschnitt Anpassung der Optik hinzugefügt.
01.05.2020Abschnitt Geschwindigkeitsoptimierung um „Anpassung der Audioübertragung“ und „Darstellung des Interface“ erweitert.
01.05.2020Abschnitt Jitsi Meet Docker Installation hinzugefügt.
29.04.2020Im Abschnitt Skalierung Freifunk München mit aufgenommen. Und die Themen Hardwareanforderungen und maximale Teilnehmeranzahl ergänzt.
19.04.2020Neuer Abschnitt über die Geschwindigkeitsoptimierung von Jitsi Meet hinzugefügt.
Hallo Tobias,
vielen Dank für die Anleitung und die vielen Informationen. Leider findet man im Internet oft nur die Standard-Installation.
Kannst evtl. noch etwas über die Möglichkeiten der Absicherung schreiben?
Es gibt sehr unterschiedliche Beschreibungen, wie man die Räume absichert, damit nicht jeder einen Raum starten kann.
Ich meinem Fall wäre es sehr hilfreich, wenn ich pro Raum einen Moderatoren-Link und einen Gäste-Link generieren kann.
Das Standardverhalten, dass der 1. Member der Moderator ist und beim Leaven einfach irgendwer dann Moderator wird, ist in der Praxis oft fraglich.
Habe gelesen, dass man das mit Tokens lösen kann und dort direkt den Gastnamen und auch Features wie z.B. „Moderator“ unterbringen kann.
Leider waren meine bisherigen Versuche dies zu konfigurieren nicht erfolgreich.
Würde mich freuen, wenn du auch in diesem Bereich deine Einfahrungen teilen kannst.
Danke und viele Grüße
Ingo aus Hannover