このページは主に Jitsu Meet をセルフホストなページです. Jitsi Meet の利用者向けの情報は以下のページへ.
マシンスペックは以下のページは4Core 8GB RAM くらいあれば十分となっている. 規定値のビデオ解像度が高いのでこれを下げてRAM利用量を下げるともっとスペックに低いマシンでも大丈夫そう. 手元で試した感じではビデオを720p → 480p,ヒープ最大サイズを3GB → 1GB にして動かしてみている, 2Core 1GB RAM(swap 2GB)では辛く数人まで.4GB RAMのマシンで7人参加でCPU20%程RAM 2GB程利用と余裕がある感じ.
Machine SizingThe Jitsi-Meet server will generally not have that much load (unless you have many) conferences going at the same time. A 4 CPU, 8 GB machine will probably be fine.
The videobridges will have more load. 4 or 8 CPU with 8 GB RAM seems to be a good configuration.
* DevOps Guide \(scalable setup\) · Jitsi Meet Handbook
8CPU, 8GB RAM ではVPSではちょっと高いので利用頻度が低いのであればクラウドでスポットで動かすのがいいと思う.
Debian 公式パッケージにはまだない
Jitsi が提供しているDebian/Ubuntu向けパッケージを利用した.Debianの場合10(buster)以降,Ubuntuの場合18.04 (Bionic Beaver)以降.amd64のみでpkg-srcもリポジトリにはない.
This document describes the required steps for a quick Jitsi Meet installation on a Debian-based GNU/Linux system. Debian 10 (Buster) or later, and Ubuntu 18.04 (Bionic Beaver) or later are supported out-of-the-box.
*
Self\-Hosting Guide \(Debian/Ubuntu server\) · Jitsi Meet Handbook
導入したのはさくらのVPS 1G(実際動かしてみるとRAM 2GB以上実際にミーティングをすると4GBは欲しい).Debian buster amd64 のapache2 httpd 導入済み環境. 入れてない場合はapache2かnginxを導入しておく.(httpdを使わず直に立てる設定もあるようだが未検証)
専用の(サブ)ドメインを用意してHTTPS certificatesを前もって作成しておく.
Let's encrypt用の /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
もあるが未使用未確認.
Jitsi package repository の登録
$ echo 'deb https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list $ wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
Jitsi の導入
$ sudo apt update $ sudo apt install jitsi-meet
hostnameや証明書のファイルを聞かれる.
Configuring jitsi-videobridge2 The value for the hostname that is set in Jitsi Videobridge installation. The hostname of the current installation:
前もって作ってあるので I want to use my own certificate
を選ぶ.
┌──────────────────────────────────────────────────────────┤ Configuring jitsi-meet-web-config ├──────────────────────────────────────────────────────────┐ │ Jitsi Meet is best to be set up with an SSL certificate. Having no certificate, a self-signed one will be generated. By choosing self-signed you will │ │ later have a chance to install Let’s Encrypt certificates. Having a certificate signed by a recognised CA, it can be uploaded on the server and point │ │ its location. The default filenames will be /etc/ssl/--domain.name--.key for the key and /etc/ssl/--domain.name--.crt for the certificate. │ │ │ │ SSL certificate for the Jitsi Meet instance │ │ │ │ Generate a new self-signed certificate (You will later get a chance to obtain a Let's encrypt certificate) │ │ I want to use my own certificate │ │ │ │ │ │ <Ok> │ │ │ └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
前もって作っておいた証明書のパスを指定. Let's encrypt だとこんな感じなので規定値のものを書き換える
SSLCertificateFile /etc/letsencrypt/live/jitsi.example.org/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/jitsi.example.org/privkey.pem
┌────────────────────────────────────┤ Configuring jitsi-meet-web-config ├────────────────────────────────────┐ │ The full path to the SSL key file on the server. If it has not been uploaded, now is a good time to do so. │ │ │ │ Full local server path to the SSL key file: │ │ │ │ /etc/ssl/jitsi.example.org.key_____________________________________________________________________ │ │ │ │ <Ok> │ │ │ └─────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────┤ Configuring jitsi-meet-web-config ├───────────────────────────────────────────────────┐
│ The full path to the SSL certificate file on the server. If you haven't uploaded it, now is a good time to upload it in another console. │
│ │
│ Full local server path to the SSL certificate file: │
│ │
│ /etc/ssl/jitsi.example.org.crt___________________________________________________________________________________________________ │
│ │
│ <Ok> │
│ │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
apache2では
/etc/apache2/sites-available/jitsi.example.org.conf
が作られて a2ensite
されている.
nginxでは /etc/nginx/sites-available/jitsi.example.org.conf
※apache2とnginxが両方入っている状態だとnginxの設定だけが作られるので両方入れていてapache2でサービスしたい場合は注意.
port開放
もし,NATの内側ならNAT越えの設定が必要
Network description This is how the network looks: + + | | | | v | 443 | +-------+ | | | | | Nginx | | | | | +--+-+--+ | | | | +------------+ | | +--------------+ | | | | | | | | | jitsi-meet +<---+ +--->+ prosody/xmpp | | | |files 5280 | | | +------------+ +--------------+ v 5222,5347^ ^5347 4443,10000 +--------+ | | +-------------+ | | | | | | | jicofo +----^ ^----+ videobridge | | | | | +--------+ +-------------+
siteに接続して確認
とりあえず規定値でも普通に使える感じ
RAM1GBのVPSで試しているがswapも結構使ってしまっている 動かすだけでも2GBくらいは欲しい
/etc/jitsi/meet/jitsi.example.org-config.js
を編集.
diff --git a/jitsi/meet/jitsi.example.org-config.js b/jitsi/meet/jitsi.example.org-config.js index 390ac8b..6fdb28b 100644 --- a/jitsi/meet/jitsi.example.org-config.js +++ b/jitsi/meet/jitsi.example.org-config.js @@ -106,23 +106,23 @@ var config = { // Video // Sets the preferred resolution (height) for local video. Defaults to 720. - // resolution: 720, + resolution: 480, // w3c spec-complrant vin o constraints to use for video capture. Currently // used by browsers that return true from lib-jitsi-meet's // util#browser#usesNewGumFlow. The constraints are independent from // this config's resolution value. Defaults to requesting an ideal aspect // ratio of 16:9 with an ideal resolution of 720. - // constraints: { - // video: { - // aspectRatio: 16 / 9, - // height: { - // ideal: 720, - // max: 720, - // min: 240 - // } - // } - // }, + constraints: { + video: { + aspectRatio: 16 / 9, + frameRate: { + max: 15 + }, + height: { + ideal: 480, + max: 480, + min: 120 + } + } + }, // Enable / disable simulcast support. // disableSimulcast: false,
/etc/jitsi/meet/jitsi.example.org-config.js
を編集.
@@ -168,10 +168,10 @@ var config = { // desktopSharingFirefoxDisabled: false, // Optional desktop sharing frame rate options. Default value: min:5, max:5. - // desktopSharingFrameRate: { - // min: 5, - // max: 5 - // }, + desktopSharingFrameRate: { + min: 1, + max: 5 + },
ハードコードされているようなので書き換えて build が必要そう.
上のビデオ解像度を下げると併用しないといけないかも?
jitsi-videobridge2
と jicofo
のヒープ最大サイズを下げる.
/etc/jitsi/videobridge/config
に VIDEOBRIDGE_MAX_MEMORY=1024m
を追記
$ echo "VIDEOBRIDGE_MAX_MEMORY=1024m" | sudo tee -a /etc/jitsi/videobridge/config
/usr/share/jicofo/jicofo.sh
を編集して -Xmx3072m
を -Xmx1024m
に※pkg upgrade後は再度編集が必要
-exec java -Xmx3072m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp $LOGGING_CONFIG_PARAM $JAVA_SYS_PROPS -cp $cp $mainClass $@ +exec java -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp $LOGGING_CONFIG_PARAM $JAVA_SYS_PROPS -cp $cp $mainClass $@
再起動
$ sudo systemctl restart prosody jitsi-videobridge2 jicofo
/etc/jitsi/meet/jitsi.example.org-config.js
を編集.
ウェブブラウザの設定が優先され,手動設定も出来る.
@@ -269,6 +272,7 @@ var config = { // Default language for the user interface. // defaultLanguage: 'en', + defaultLanguage: 'ja', // If true all users without a token will be considered guests and all users // with token will be considered non-guests. Only guests will be allowed to
/etc/jitsi/meet/jitsi.example.org-config.js
でlocalRecordingを有効にして,
- // localRecording: { + localRecording: { // Enables local recording. // Additionally, 'localrecording' (all lowercase) needs to be added to // TOOLBAR_BUTTONS in interface_config.js for the Local Recording // button to show up on the toolbar. // - // enabled: true, + enabled: true, // // The recording format, can be one of 'ogg', 'flac' or 'wav'. - // format: 'flac' + format: 'ogg' // - // }, + },
/usr/share/jitsi-meet/interface_config.js
の TOOLBAR_BUTTONS
に 'localrecording'
を追加する.interface_config.js
はアップデートで上書きされそう.上書きされても恐らく機能は生きているのでスマホアプリなどでは利用できる?
TOOLBAR_BUTTONS: [ 'microphone', 'camera', 'closedcaptions', 'desktop', 'fullscreen', 'fodeviceselection', 'hangup', 'profile', 'info', 'chat', 'recording', 'livestreaming', 'etherpad', 'sharedvideo', 'settings', 'raisehand', 'videoquality', 'filmstrip', 'invite', 'feedback', 'stats', 'shortcuts', 'tileview', 'videobackgroundblur', 'download', 'help', 'mute-everyone', 'e2ee', 'localrecording' ],
/etc/jitsi/meet/jitsi.example.org-config.js
を編集.
// Whether to enable live streaming or not. - // liveStreamingEnabled: false, + liveStreamingEnabled: true,
多分clientから配信される パケットキャプチャしたら無かったので恐らくサーバから
/usr/share/jitsi-meet 以下の body.html, head.html, static/welcomePageAdditionalContent.html あたり?
pkgアップデートで上書きされてしまった(◞‸◟)
アップデート前に要バックアップ
$ sudo apt update : W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://download.jitsi.org stable/ InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B4D2D216F1FD7806 W: Failed to fetch https://download.jitsi.org/stable/InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B4D2D216F1FD7806 W: Some index files failed to download. They have been ignored, or old ones used instead.
鍵の取得とsource.listの修正
$ curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg' $ sudo apt edit-sources jitsi-stable.list $ cat /etc/apt/sources.list.d/jitsi-stable.list deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/ $ sudo apt update && sudo apt upgrade
$ sudo apt update : W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://download.jitsi.org stable/ InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B4D2D216F1FD7806 W: Failed to fetch https://download.jitsi.org/stable/InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B4D2D216F1FD7806 W: Some index files failed to download. They have been ignored, or old ones used instead.
鍵の取得とsource.listの修正
$ curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg' $ sudo apt edit-sources jitsi-stable.list $ cat /etc/apt/sources.list.d/jitsi-stable.list deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/ $ sudo apt update && sudo apt upgrade
$ sudo apt update : W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://download.jitsi.org stable/ InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B4D2D216F1FD7806 W: Failed to fetch https://download.jitsi.org/stable/InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B4D2D216F1FD7806 W: Some index files failed to download. They have been ignored, or old ones used instead.
鍵の取得とsource.listの修正
$ curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg' $ sudo apt edit-sources jitsi-stable.list $ cat /etc/apt/sources.list.d/jitsi-stable.list deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/ $ sudo apt update && sudo apt upgrade
$ sudo apt update : W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://download.jitsi.org stable/ InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B4D2D216F1FD7806 W: Failed to fetch https://download.jitsi.org/stable/InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B4D2D216F1FD7806 W: Some index files failed to download. They have been ignored, or old ones used instead.
鍵の取得とsource.listの修正
$ curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg' $ sudo apt edit-sources jitsi-stable.list $ cat /etc/apt/sources.list.d/jitsi-stable.list deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/ $ sudo apt update && sudo apt upgrade
2人目がjoinするとクラッシュするようになってしまった.
インストールし直したら直ったという人が.この人は purge しているが,remove & install でも直った
$ sudo apt remove jigasi jitsi-meet jitsi-meet-web-config jitsi-meet-prosody jitsi-meet-turnserver jitsi-meet-web jicofo jitsi-videobridge2 $ sudo apt install jitsi-meet
※stableでも直っているので症状が出る場合はupdateを
日本時間と同じ9時間なのが怪しい?
似た症状
コメント