Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision | ||
knb:meet-server [2020/03/21 10:10] – angelegt awickert | knb:meet-server [2020/05/12 08:53] – [Brief overview] awickert | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Freifunk München Jitsi Server Setup ====== | + | ====== Freifunk München Jitsi Server Setup - meet.ffmuc.net |
==== Brief overview ==== | ==== Brief overview ==== | ||
The setup consists of multiple Jitsi videobridges which can be added and removed on demand as well as one control server which does the loadbalancing decisions. | The setup consists of multiple Jitsi videobridges which can be added and removed on demand as well as one control server which does the loadbalancing decisions. | ||
- | Each server has at least 2vCPUs, 4GB RAM and 10GB disc space. But the most important thing is bandwidth so a 1Gbit/s link is necessary for smooth operation. | + | Each server has at least 8vCPUs, 16GB RAM and 10GB disc space. But the most important thing is bandwidth so a 1Gbit/s link is necessary for smooth operation. |
+ | |||
+ | The more CPUs you have the better, also you need good network hardware as you can expect many pps. | ||
===== Initial setup (control server) ===== | ===== Initial setup (control server) ===== | ||
- | We installed the first instance as described on https:// | + | We installed the first instance as described on https:// |
+ | |||
+ | Disable the videobridge: | ||
+ | < | ||
+ | # systemctl stop jitsi-videobridge.service | ||
+ | # systemctl mask jitsi-videobridge.service | ||
+ | </ | ||
+ | |||
+ | Disable unnecessary and broken features on the control server: | ||
+ | / | ||
+ | < | ||
+ | defaultLanguage: | ||
+ | disableThirdPartyRequests: | ||
+ | p2p: { enabled: false }, | ||
+ | enableLipSync: | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ==== Prosody Setup for loadbalancing (control server) ==== | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | Most important thing is to get hostnames and DNS settings correct for each instance, otherwise your setup will fail. | ||
+ | </ | ||
+ | |||
+ | |||
+ | Jitsi instances balance based on metrics published by the videobridges to jicofo. To allow the videobridges to publish those metrics we need to change some settings in the prosody settings. | ||
+ | |||
+ | In the Admin section you need to add all the bridges. | ||
+ | / | ||
+ | < | ||
+ | admins = { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | As we want to scale beyond 1024 connections we also switch to epoll in prosody.cfg.lua. | ||
+ | < | ||
+ | -- for better scaling | ||
+ | -- https:// | ||
+ | network_backend = " | ||
+ | </ | ||
+ | |||
+ | And as we want external videobridges we need to listen on the external interface and not just localhost: | ||
+ | < | ||
+ | component_interface = " | ||
+ | </ | ||
+ | |||
+ | And you also need to assign a component to each videobridge in your site config. | ||
+ | / | ||
+ | < | ||
+ | Component " | ||
+ | component_secret = " | ||
+ | Component " | ||
+ | component_secret = " | ||
+ | Component " | ||
+ | component_secret = " | ||
+ | </ | ||
+ | |||
+ | ==== Videobridges for loadbalancing ==== | ||
+ | |||
+ | On those servers **only** the '' | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | Again watch your DNS and hostname setup! | ||
+ | </ | ||
+ | |||
+ | First you need to change ''/ | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | Settings may vary on other systems than Debian Buster | ||
+ | </ | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | The " | ||
+ | |||
+ | We also enable statistics for later polling via Telegraf (--apis). | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | # Jitsi Videobridge settings | ||
+ | |||
+ | # sets the XMPP domain (default: none) | ||
+ | JVB_HOSTNAME=meet.ffmuc.net | ||
+ | |||
+ | # sets the hostname of the XMPP server (default: domain if set, localhost otherwise) | ||
+ | JVB_HOST=meet.ffmuc.net | ||
+ | |||
+ | # sets the port of the XMPP server (default: 5275) | ||
+ | JVB_PORT=5347 | ||
+ | |||
+ | # sets the shared secret used to authenticate to the XMPP server | ||
+ | JVB_SECRET=pass | ||
+ | |||
+ | # extra options to pass to the JVB daemon | ||
+ | JVB_OPTS=" | ||
+ | |||
+ | |||
+ | # adds java system props that are passed to jvb (default are for home and logging config file) | ||
+ | JAVA_SYS_PROPS=" | ||
+ | </ | ||
+ | |||
+ | Then we need to adjust the sip-communicator settings: | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | This is also important because we enable the stats on the videobridge here. If not activated there will be no loadbalancing decisions. | ||
+ | </ | ||
+ | |||
+ | / | ||
+ | < | ||
+ | org.jitsi.videobridge.AUTHORIZED_SOURCE_REGEXP=focus@auth.meet.ffmuc.net/ | ||
+ | org.jitsi.videobridge.ENABLE_STATISTICS=true | ||
+ | org.jitsi.videobridge.STATISTICS_INTERVAL=1000 | ||
+ | org.jitsi.videobridge.STATISTICS_TRANSPORT=muc, | ||
+ | org.jitsi.videobridge.PUBSUB_SERVICE=meet.ffmuc.net | ||
+ | org.jitsi.videobridge.PUBSUB_NODE=sharedStatsNode | ||
+ | </ | ||
+ | |||
+ | ===== Bonus: Monitoring ===== | ||
+ | |||
+ | We use telegraf to poll the statistics of the videobridges. We just use the exec section of Telegraf, to get the data. | ||
+ | |||
+ | Example: [[https:// | ||
+ | |||
+ | / | ||
+ | < | ||
+ | [[inputs.exec]] | ||
+ | | ||
+ | " | ||
+ | ] | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | ===== Hint for smooth operation ===== | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | Use Chrome or it's derivates as client. The Mobile and Desktop Apps of jitsi-meet work as well. | ||
+ | Avoid using Firefox! It causes problems for the Firefox-user but as well the other parties which do not use Firefox. | ||
+ | </ | ||