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.
#!/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. ]
#!/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.
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.
./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
Das Betreiben der Dienste, Webseite und Server machen wir gerne, kostet aber leider auch Geld.Unterstütze unsere Arbeit mit einer Spende. |
