16.05.2021 Update: Neue Funktionen aufgenommen und Aktualisierungen eingepflegt.
Die Open-Source-Software Jitsi Meet für Videokonferenzen im Web kann sehr einfach, ohne eine Software zu installieren, mit einem Webbrowser genutzt werden. Neben den zahlreichen öffentlichen Jitsi Meet Servern kann eine eigene Instanz einfach installiert werden. Nach der Installation erfolgt die Anpassung, wie das Ändern des Logos, des Namens und das Hinzufügen eines Impressums. Leider werden diese Änderungen mit einem Update von Jitsi Meet immer wieder überschrieben. Da die Community sehr aktiv ist, gibt es regelmäßige Updates, was zu einigem Aufwand führt.
Abhilfe habe ich mir mit einem Bash Script geschaffen, welches das Update von Jitsi Meet ausführt und anschließend wieder alle Änderungen automatisiert durchführt. Damit kann die Serverinstallation schnell und einfach durchgeführt werden. Das Script kann direkt in der Shell unter Linux ausgeführt werden.
Kostenloser Jitsi Meet Server (meet.scheible.it):
Aufbau des Update Scripts
Das Script wurde für eine Jitsi Meet Installation gemäß meiner Anleitung unter Ubuntu 18.04 getestet. Die einzelnen Schritte zur Aktualisierung von Jitsi Meet werden der Reihe nach ausgeführt und fangen immer mit einer Beschreibung an, die mit ausgegeben wird. Das Script ist sehr einfach gehalten, sodass es selbst sehr einfach angepasst werden kann. Für eigene Anpassungen sollten immer die Teile bearbeitet werden, die den Begriff „example“ beinhalten.
Jedes Bash Script startet mit dem Eintrag #!/bin/bash, dabei handelt es sich um eine Anweisung (Shebang) die definiert, mit welchem Kommandointerpreter (also welcher Shell) die Datei ausgeführt werden soll.
#!/bin/bash
Update der Pakete
Um Jitsi Meet zu aktualisieren, werden als Erstes die Softwarequellen aktualisiert (apt update) und dann die neuen Pakete installiert (apt upgrade).
echo "Update System and Jitsi Meet" apt update -qq apt upgrade -qq -y
Anpassung des Logos
Als erste Anpassung wird das Logo getauscht. Dazu wird mittels wget das eigene Logo heruntergeladen. Das eigene Logo muss auf einem Webspace abgelegt werden (Link https://example.com/watermark.png entsprechend anpassen).
echo "+ Modify Logo" wget -c -q -O /usr/share/jitsi-meet/images/watermark.png https://example.com/watermark.png
In der neuen Version von Jitsi Meet wird eine SVG-Datei als Logo verwendet. Die Dateiendung kann einfach wieder auf .png geändert werden:
$ sed -i -e 's/watermark.svg/watermark.png/g' /usr/share/jitsi-meet/interface_config.js
Anpassung des Interface
Im nächsten Schritt wird die Datei interface_config.js angepasst, sie beinhaltet die Optionen für das Interface von Jitsi Meet. Hier werden exemplarisch drei Einträge geändert. Als Befehl bzw. Tool wird sed verwendet, damit kann innerhalb einer Datei nach einer Zeichenkette gesucht werden und diese durch eine andere ersetzen. Die wichtigen Teile befinden sich innerhalb der Schrägstriche „/“ mit dem folgenden Schema:
sed -i -e 's/SUCHE/ERSETZE/g' DATEI
Der erste Eintrag ersetzt die URL des Logos durch die eigene URL. Dann wird der Eintrag DISPLAY_WELCOME_PAGE_TOOLBAR_ADDITIONAL_CONTENT auf true gesetzt, um den Link zum Impressum einzubinden. Da es keinen anderen Eintrag gibt, der mit _CONTENT endet, reicht diese Zeichenfolge zum Suchen. Zum Schluss wird noch der eigene Namen zum Standardnamen Jitsi Meet mitangehängt. Dieser erscheint auf der Startseite und im Titel.
echo "+ Modify interface_config.js" sed -i -e 's/jitsi.org/example.com/g' /usr/share/jitsi-meet/interface_config.js sed -i -e 's/_CONTENT: false/_CONTENT: true/g' /usr/share/jitsi-meet/interface_config.js sed -i -e 's/Jitsi Meet/Jitsi Meet – Example Company/g' /usr/share/jitsi-meet/interface_config.js
Link zum Impressum
Nachdem der zusätzliche Inhalt auf der Startseite aktiviert wurde, muss noch die Datei welcomePageAdditionalContent.html mit Inhalt befüllt werden. Dazu wird der Echo-Befehl verwendet und die Ausgabe in die Datei umgeleitet, dies geschieht mit dem „>“-Operator. Damit wird der Inhalt der Datei komplett überschrieben. Wichtig dabei ist, den ursprünglichen <template>-Tag nicht zu vergessen und nur einfache Anführungszeichen zu verwenden.
echo "+ Modify welcomePageAdditionalContent.html" echo "Hier kommt beliebiger Inhalt" > /usr/share/jitsi-meet/static/welcomePageAdditionalContent.html
CSS-Layout
Als Nächstes werden die individuellen CSS-Anweisungen in die all.css geschrieben. Damit kann zum Beispiel das Layout der Startseite von Jitsi Meet angepasst werden. Dazu wird wieder der Echo-Befehl verwendet, aber mit dem doppelten „>>“-Operator. Da die CSS-Datei nicht überschrieben werden soll, sondern die zusätzlichen Einträge werden am Ende angefügt.
echo "+ Modify all.css" echo "/* Custom */ a{color: red;} >> /usr/share/jitsi-meet/css/all.css
Sollen mehrere CSS-Anweisungen eingetragen werden, ist es komfortabler, diese in eine extra Datei abzuspeichern. Mit dem cat-Befehl kann der Inhalt einer Datei ausgegeben und mit dem >>-Operator in eine andere Datei umgeleitet und an das Ende angefügt werden.
cat /root/jitsi/jitsi.css >> /usr/share/jitsi-meet/css/all.css
Abschluss des Updates
Damit die Änderungen vom System auch übernommen werden, müssen zum Abschluss die Jitsi Meet Services neu gestartet werden.
echo "+ Restarting services" # service prosody restart && service jicofo restart && service jitsi-videobridge2 restart && service nginx restart
Das komplette Script
Hier das komplette Script zum bequemen Aktualisieren von Jitsi Meet Servern:
#!/bin/bash echo "Update System and Jitsi Meet" apt update -qq apt upgrade -qq -y echo "Modify Jitsi Meet Config" echo "+ Modify Logo" wget -c -q -O /usr/share/jitsi-meet/images/watermark.png https://example.com/watermark.png echo "+ Modify interface_config.js" sed -i -e 's/jitsi.org/example.com/g' /usr/share/jitsi-meet/interface_config.js sed -i -e 's/_CONTENT: false/_CONTENT: true/g' /usr/share/jitsi-meet/interface_config.js sed -i -e 's/Jitsi Meet/Jitsi Meet – Example Company/g' /usr/share/jitsi-meet/interface_config.js echo "+ Modify welcomePageAdditionalContent.html" echo 'Hier kommt beliebiger Inhalt' > /usr/share/jitsi-meet/static/welcomePageAdditionalContent.html echo "+ Modify all.css" echo "/* Custom */ a{color: red;}" >> /usr/share/jitsi-meet/css/all.css echo "+ Restarting services" service prosody restart service jicofo restart service jitsi-videobridge2 restart service nginx restart
Das Bash Script kann zum Beispiel direkt im Root-Verzeichnis abgelegt werden. Als Beispiel wird hier der Name update.sh verwendet. Der obige Inhalt wird angepasst und in die Datei gespeichert. Zusätzlich müssen noch die Rechte zum Ausführen gesetzt werden.
$ sudo chmod +x /root/update.sh
Zum Ausführen des Jitsi Meet Update Scripts kann dann der folgende Befehl verwendet werden:
$ sudo /root/update.sh
Konfiguration einbinden
Den obigen Weg habe ich gewählt, da ich auch Änderungen an der CSS-Datei vornehme. Wenn nur das Logo, die Konfigurationsdatei und der zusätzliche Inhalt geändert werden soll, kann dies über eine Verknüpfung realisiert werden. Die individuellen Dateien werden dazu am besten im Ordner /etc/jitsi/meet abgelegt. Danach muss in der Konfigurationsdatei des Webservers NGINX für die verwendete Domain, die im Ordner /etc/nginx/sites-enabled/ liegt, die folgenden Einträge ganz am Ende, aber noch vor der letzten schließenden geschweiften Klammer, hinzugefügt werden:
// /etc/nginx/sites-enabled/meet.example.com.conf location = /favicon.ico { alias /etc/jitsi/meet/favicon.ico; } location = /images/watermark.png { alias /etc/jitsi/meet/watermark.png; } location = /static/welcomePageAdditionalContent.html { alias /etc/jitsi/meet/welcomePageAdditionalContent.html; } location = /interface_config.js{ alias /etc/jitsi/meet/interface_config.js; }
Wichtig ist im Hinterkopf zu behalten, dass es auch Änderungen an der interface_config.js geben kann. Dadurch kann es sein, dass neue Funktionen nicht zur Verfügung stehen oder es im schlimmsten Fall zu Komplikationen kommen kann.
Jitsi Meet Fehlerbhebung
Sollte es nach einem Update von Jitsi Meet zu Fehlern kommen, hilft als Erstes ein Neustart der Services:
# service nginx restart && service jitsi-videobridge2 restart && service prosody restart && service jicofo restart
Sollte es danach immer noch zu Fehlern kommen, empfiehlt sich ein Blick in die Logdateien der unterschiedlichen Jitsi Meet Komponenten:
Video Bridge Logs: # tail -F /var/log/jitsi/jvb.log Jicofo Logs: # tail -F /var/log/jitsi/jicofo.log Prosody Logs: # tail -F /var/log/prosody/prosody.log Nginx Logs: # tail -F /var/log/nginx/error.log
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.2021Neue Funktionen aufgenommen und Aktualisierungen eingepflegt.
06.01.2021Kleinere Korrekturen und Ergänzungen.
24.10.2020Neuer Bereich Fehlerbhebung ergänzt.
17.05.2020Script wurde weiter optimiert.
05.05.2020Abschnitt „Konfiguration einbinden“ ergänzt.
Danke für die Anregungen hier und auf den anderen Seiten! Bisher habe ich das manuell erledigt, aber nachdem vorhin apticron wieder eine entsprechende Mail geschickt hat… 😉
Jedenfalls: Das „watermark.png“ lässt sich auch (bevor das Update es killt!) direkt von
<Jitsi server>/images/watermark.png
holen, also im Skript z.B. so:wget -c -q -O /usr/share/jitsi-meet/images/watermark.png https://meet.example.com/images/watermark.png
Und eine Frage zu der „Hintergrundunschärfe“-Funktion: Wenn man die einschaltet, werden Dateien von storage.googleapis.com nachgeladen. Müsste man das nicht eigentlich in der Datenschutzerklärung erwähnen?
Bei mir habe ich das Feature wegkonfiguriert, auch, weil es eh nicht besonders toll funktioniert („Beta“ halt) und ich als Zielgruppe v.a. Schulkinder und -eltern habe, die ich erst gar nicht in Versuchung führen will viel herumzuspielen. (Und die nötigen Dateien selbst hosten würde vmtl. auch selbst Jitsi kompilieren bedeuten, habe aber nur kurz gesucht.)