Im vorherigen Tutorial habe ich gezeigt, wie die adminForge Jitsi Meet Instanz via Docker/Docker-Compose aufgesetzt wurde.
Tutorial: Eigene Jitsi Meet Instanz installieren (Docker / Ubuntu / Nginx)
Was ist Jitsi Meet?: Videokonferenzen mit Jitsi Meet
Meeting starten: https://teamjoin.de
Nun möchte ich euch zeigen wie die Jitsi Meet Instanz von mir angepasst wurde. Die Docker Version von Jitsi Meet hat eine Besonderheit – der Config-Ordner ist flüchtig! Somit nutzen wir ein restart.sh
und customize.sh
Bash-Script.
Punkt 1: restart.sh Bash-Script
Zum Neustarten unserer Jitsi Meet Docker Instanz nutzen wir zukünftig dieses Bash-Script.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#!/bin/bash DOCKERPATH=/opt/docker # Shutdown jitsi meet containers and remove images cd $DOCKERPATH/jitsi-meet docker-compose down --rmi all # Delete configs and recreate folders rm -rf .jitsi-meet-cfg/ mkdir -p .jitsi-meet-cfg/{web/letsencrypt,transcripts,prosody,jicofo,jvb} # Start Jitsi Meet docker-compose up -d sleep 10 # Customize ./customize.sh # Set JVB Logging from INFO to WARNING sed -i 's/^.level=.*/.level=WARNING/' .jitsi-meet-cfg/jvb/logging.properties docker restart jitsi-meet-jvb-1 |
Punkt 2: customize.sh Bash-Script
Nun erstellen wir uns noch das Script welches Anpassungen vornimmt.
Was wurde angepasst/optimiert?
- Watermark aus: Das jitsi.org Logo oben links verschwindet
- Blur aus: Hintergrundverschwimmung funktioniert mehr schlecht als recht, der Menüpunkt wird ausgeblendet
- Audio Levels: Die blauen Punkte wenn jemand spricht können hier deaktivert werden. Spart CPU-Power auf dem Client (optional wg. Usability)
- Third Party Requests aus: Anfragen zu gravatar.com werden untersagt
- Generated Room Names aus: Das Raumnamen Feld ist leer
- Own STUN Server: Die adminForge Server werden gesetzt
- Auto Lang: Sprache wird automatisch nach Browsereinstellung erkannt, Standard ist „de“
- Resolution, Constraints: Videoauflösung von 180p bis 720p möglich. Spart CPU-Power auf Server und Client
- Channel: Die maximale Anzahl aktiver Videostreams. 8 Videostreams werden angezeigt, alles darüber hinaus wird eingefroren bis jemand spricht (optional wg. Usability)
- Layer Suspension: Der Client (ab Chrome 69) sendet nur Streams die gerade angesehen werden. Normal sendet der Client simultan in mehreren Auflösungen. Spart Bandbreite, CPU-Power auf Server und Client und verbessert die Videoqualität
- Recording: Abgeschaltet
- Livestreaming: Abgeschaltet
[ Die Anpassungen sind aus Erfahrungswerten der adminForge Jitsi Meet Instanz entstanden. ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
#!/bin/bash # Disable Watermark sed -i 's/SHOW_JITSI_WATERMARK: true/SHOW_JITSI_WATERMARK: false/' .jitsi-meet-cfg/web/interface_config.js sed -i "s/DEFAULT_LOGO_URL: '.*',/DEFAULT_LOGO_URL: '',/" .jitsi-meet-cfg/web/interface_config.js sed -i "s/DEFAULT_WELCOME_PAGE_LOGO_URL: '.*',/DEFAULT_WELCOME_PAGE_LOGO_URL: '',/" .jitsi-meet-cfg/web/interface_config.js sed -i "s/JITSI_WATERMARK_LINK: '.*',/JITSI_WATERMARK_LINK: '',/" .jitsi-meet-cfg/web/interface_config.js # Disable third party requests (gravatar.com) sed -i "s#// disableThirdPartyRequests: false,#disableThirdPartyRequests: true,#" .jitsi-meet-cfg/web/config.js # Disable generated room names sed -i "s#GENERATE_ROOMNAMES_ON_WELCOME_PAGE: true,#GENERATE_ROOMNAMES_ON_WELCOME_PAGE: false,#" .jitsi-meet-cfg/web/interface_config.js # Set own STUN server sed -i "s#// { urls: 'stun:jitsi-meet.example.com:3478#{ urls: 'stun:relay.adminforge.de:443#" .jitsi-meet-cfg/web/config.js sed -i 's/meet-jit-si-turnrelay.jitsi.net:443/relay2.adminforge.de:443/' .jitsi-meet-cfg/web/config.js # Auto Language sed -i 's/LANG_DETECTION: false/LANG_DETECTION: true/' .jitsi-meet-cfg/web/interface_config.js sed -i "s#// defaultLanguage: 'en'#defaultLanguage: 'de'#" .jitsi-meet-cfg/web/config.js # Set Resolution sed -i 's#// resolution: 720#resolution: 720#' .jitsi-meet-cfg/web/config.js if [ $(grep " constraints: {" .jitsi-meet-cfg/web/config.js | wc -l) = 0 ]; then cat << EOF | sed -i '/constraints: {/r /dev/stdin' .jitsi-meet-cfg/web/config.js constraints: { video: { height: { ideal: 720, max: 720, min: 180 }, width: { ideal: 1280, max: 1280, min: 320 } } }, videoQuality: { maxBitratesVideo: { low: 200000, standard: 500000, high: 1500000 }, }, EOF fi # Limitation of the transmitted video feeds # https://github.com/jitsi/jitsi-videobridge/blob/master/doc/last-n.md #sed -i 's#channelLastN: -1,#channelLastN: 20,#' .jitsi-meet-cfg/web/config.js # Enable Layer Suspension # https://jitsi.org/blog/new-off-stage-layer-suppression-feature/ sed -i 's#// enableLayerSuspension: false,#enableLayerSuspension: true,#' .jitsi-meet-cfg/web/config.js # Disable recording sed -i 's#// fileRecordingsEnabled: false,#fileRecordingsEnabled: false,#' .jitsi-meet-cfg/web/config.js # Disable livestreaming sed -i 's#// liveStreamingEnabled: false,#liveStreamingEnabled: false,#' .jitsi-meet-cfg/web/config.js |
Vergesst das setzen der Ausführungsrechte nicht.
1 2 3 |
cd /opt/docker/jitsi-meet/ chmod +x restart.sh chmod +x customize.sh |
Punkt 3: Neustart der Instanz
Jetzt kann die eigene Jitsi Meet Instanz mit den Anpassungen versehen werden.
1 |
./restart.sh |
Fertig! Die Instanz ist nun optimiert und angepasst.
Punkt 4: Updates
Da die Docker Images bei jedem Restart gelöscht werden und immer neue frische Jitsi Meet Images heruntergeladen werden, müsst ihr euch keine Sorgen um die Updates machen.
Ob es eine neuere Version gibt seht ihr auf der Docker Jitsi Meet GitHub Seite.
WICHTIG: Es ändert sich oftmals was an der docker-compose.yml und .env Datei. Bitte führt bei Problemen ein git pull
durch um diese neuen Versionen zu erhalten!
Als nächstes: Eine zweite JVB zu Jitsi Meet hinzufügen (Docker)
Euer adminForge Team
Unterstütze unsere Arbeit mit einer Spende. |