Keine Lust all deine Daten an Microsoft, Zoom, Google & Co. für eine Videotelefonie zu übermitteln?
Warum hostest du nicht einfach selbst deine Meeting-Software?
Mit Jitsi kannst du deine eigenen Meeting-Software für Videotelefonie, Bildschirmpräsentationen inkl. Chat in wenigen Minuten online bringen!
Jitsi ist dabei komplett kostenlos und OpenSource.
In dieser kurzen Anleitung, zeig ich dir wie es geht.
1. Die Voraussetzungen
Was brauchen wir alles?
– Einen Linux-Server
– Debian oder Ubuntu als System (mit anderen sollte es auch gehen, nur habe ich es nicht getestet)
– Volle Root-Rechte auf dem Server und SSH-Zugang
– Am besten eine statische IP
– Optional aber empfehlenswert ist eine Domain
– Folgende Ports: 22, 80, 443, 4443, 10000-20000 (TCP + UDP)
2. JitSi installieren
2.1 Schalte dich auf deinen Server via SSH auf und logge dich als Root-Nutzer ein.
2.2 Update deinen Server erst einmal
# apt update && apt upgrade -y
2.3 Wir installieren noch notwendige Pakete
# apt install apt-transport-https curl gnupg -y
2.3.1 Ubuntu-Nutzer müssen noch universe installieren, Debian-User brauchen das nicht.
# sudo apt-add-repository universe # apt update
2.4 Wir benötigen nun nginx als Webserver und Certbot, um Lets Encrypt Zertifikate ausstellen zu können.
# apt install nginx certbot python-certbot-nginx -y
Hinweis: JitSi legt sich gleich von selbst eine passende nginx-Konfiguration an. Wir müssen hier nichts machen.
2.5 – OPTIONAL Erstelle dir mit dem Certbot ein Zertifikat, damit wir später die Webseite sicher per HTTPS aufrufen können. Achte darauf das deine Domain auch auf deinen Server zeigt!
# certbot certonly -d jitsi.deine-domain.com
2.7 Nun fügen wir die Paketquellen von Jitsi hinzu, damit die Installation so einfach wie möglich ausfällt
# wget https://download.jitsi.org/jitsi-key.gpg.key # apt-key add jitsi-key.gpg.key # rm jitsi-key.gpg.key
2.8 Wir erstellen uns nun eine Source-Liste und fügen hier den passenden Download-Pfad hinzu
# nano /etc/apt/sources.list.d/jitsi-stable.list
deb https://download.jitsi.org stable/
2.9 Nun ist es Zeit, um Jitsi zu installieren
# apt update # apt install jitsi-meet
2.10 Trage bei der Frage „The hostname of the current installation:“ deine Domain oder deine IP-Adresse ein
jitsi.deine-domain.com
Hinweis: Trage die Domain oder IP ohne HTTP:// bzw HTTPS:// ein!
2.11 Wähle bei der Frage „SSL certificate for the Jitsi Meet instance“ folgendes aus:
I want to use my own certificate
Somit können wir gleich unser Let’s Encrypt-Zertifikat hinterlegen.
2.11 Trage bei der Frage „Full local server path to the SSL key file“ den privaten Schlüssel des Zertifikats ein
/etc/letsencrypt/live/jitsi.deine-domain.com/privkey.pem
2.12 Trage bei der Frage „Full local server path to the SSL certificate file:“ das SSL Zertifikat ein
/etc/letsencrypt/live/jitsi.deine-domain.com/fullchain.pem
Fertig!
Wir können nun Jitsi einmal testen, indem wir die URL des Servers nun aufrufen.
Gebe dazu im Browser einfach die Domain oder die IP des Servers ein.
https://jitsi.deine-domain.de
Ab nun müssen auch die oben genannten Ports in deiner Firewall / Router freigeschaltet werden, soweit die Seite über das Internet erreichbar sein soll.
3. Absichern des Servers
Damit keine fremden Personen einfach unseren Jitsi-Server missbrauchen, dürfen nur Personen die einen Login haben auch Räume erstellen.
Jeder Gast kann dann nur den Räumen beitreten, aber keine erstellen.
Das ist sinnvoll, wenn der Server direkt aus dem Internet aus erreichbar ist und nicht nur in deinem Heimnetz oder Firmennetzwerk genutzt wird.
3.1 Öffne folgende Datei mit einem Editor
# nano /etc/prosody/conf.avail/DEINE-DOMAIN.cfg.lua
WICHTIG: Die Datei nennt sich nun so wie deine Konfigurierte Doamin! Pass daher den Befehl an!
3.2 Suche nach dem Parameter „authentication“ und ersetze „anonymous“ durch „internal_plane“
authentication = "internal_plain"
3.3 Füge am Ende der Datei folgenden Inhalt dazu und Editiere die VirtualHost-Adresse
VirtualHost "guest.JITSI.DEINE-DOMAIN.DE" authentication = "anonymous" c2s_require_encryption = false
WICHTIG: Die VirtualHost-Adresse muss mit guest. beginnen! guest. ist KEIN Teil der Domain und muss daher NICHT als DNS-Eintrag existieren!
3.4 Öffne nun folgende Datei
# nano /etc/jitsi/meet/JITSI.DEINE-DOMAIN.DE-config.js
HINWEIS: Pass den Befehl nach deinem Domain-Namen an! Am besten mit Tab als Autovervollständigung arbeiten 😉
3.5 Editiere nun hier die „anonymousdomain“ durch deine URL (IP oder Domain)
anonymousdomain: 'guest.JITSI.DEINE-DOMAIN.DE',
WICHTIG: Die Domain muss mit guest. beginnen! guest. ist KEIN Teil der Domain und muss daher NICHT als DNS-Eintrag existieren!
3.6 Öffne zum Schluss noch folgende Datei:
# nano /etc/jitsi/jicofo/sip-communicator.properties
3.7 Füge hier einfach eine Zeile darunter noch folgenden Inhalt ein und gebe am Ende deine Domain ein
org.jitsi.jicofo.auth.URL=XMPP:JITSI.DEINE-DOMAIN.DE
3.8 Starte nun alle Dienste einmal neu
# prosodyctl register user your_domain password # systemctl restart prosody.service # systemctl restart jicofo.service # systemctl restart jitsi-videobridge2.service # systemctl restart nginx
3.9 Lege einen neuen Nutzer an, der sich als Moderator anmelden kann:
# prosodyctl register user JITSI.DEINE-DOMAIN.DE password
Wir sind durch!
Wenn du jetzt versuchst einem Meeting beizutreten, welches noch nicht existiert, wirst du nach einem Login abgefragt.
4. Logins anlegen
Damit nun Personen einen Raum erstellen können, brauchen sie einen Login.
Du kannst neue Logins direkt auf der Kommandozeile anlegen und die Zugangsdaten dann weitergeben.
Leider kannst du nichts über das Webinterface machen.
Neue Logins legst du mit folgendem Befehl an
prosodyctl register NUTZERNAME JITSI.DEINE-DOMAIN.DE SuPeRsIcHeReSp4sSw0rT
Wir sind durch! Dein Jitsi-Server ist nun Startklar!
Viel Spaß!
Soweit du das ganze in deiner Firma installierst und statt einem „Benutzername + Passwort“-Login deinen Active Directory nutzen möchtest, findest du auf GitHub eine gute Anleitung.
https://github.com/jitsi/jitsi-meet/wiki/LDAP-Authentication#ldap-authentication-for-jitsi-meet-via-ldap2
Keine Lust den Webbrowser zu nutzen?
Jitsi gibt es auch als Desktop-Anwendung!
>> Desktop-Version
Du brauchst noch Apps fürs Smartphone oder Tablet?
Die gibts in den Stores!
>> Apple App Store
>> F-Droid
>> Google Play Store
Genau Eins-zu-Eins habe ich die Anleitung befolgt und habe meinen eigenen Jitsi-Server im Internet (ein VPS). Vielen Dank!
Hallo Hoerli,
vielen Dank für deine Anleitung. Hat super funktioniert. Nur eine Sache läuft noch nicht und zwar die Aufnahmefunktion. Hast du hier eine Lösung? Es erscheint immer der Fehler „Die Aufnahme konnte nicht gestartet werden.“.
Wäre super, wenn du eine Lösung hättest.
Vielen Dank und beste Grüße
Hi Christian,
schau mal in den Log von Jitsi, oder mal in den Output der Dienste.
Dort solltest du in der Regel mehr Informationen dazu finden, denn mit deiner Fehlerbeschreibung kann ich nichts anfangen.
Des weiteren kannst du deine Jitsi-Konfiguration einmal prüfen, ob die Aufnahmen auch aktiviert sind.
Ich selbst habe die Aufnahmen nie verwendet, daher kann ich dir da tatsächlich nicht sonderlich gut helfen.
– Hoerli
Hallo Hoerli,
super Anleitung. klappt auch soweit.
bis aud en punkt mit der passwortabfrage beim erstellen eines meetings.
ich habe die änderungen in den dateien wie beschrieben vorgenommen und auch einen benutzer angelegt. ( nur die datei für die SIP funktion ist bei meiner Installation nicht verfügbar und wurde daher auch nicht geändert)
hast du eine idee woran das noch liegen kann?
einen neustart des systems habe ich auch probiert und die browsercookies gelöscht.
Hallo Robert,
da habe ich gerade spontan keine Ahnung was schief gelaufen sein könnte.
Eventuell sind da ein paar Zeichen in ver Konfiguration verrutscht?
Zur Not am besten noch einmal von Vorne beginnen.
Das Hilft bei Jitsi meistens am besten 🙂
Habe den Fehler gefunden ( RTFM) https://jitsi.github.io/handbook/docs/devops-guide/secure-domain/#prosody-configuration
/etc/jitsi/jicofo/jicofo.conf:
jicofo {
authentication: {
enabled: true
type: XMPP
login-url: jitsi-meet.example.com
}
…
Das ist dann wohl das was in deiner config in /sip-communicator.properties passiert…