ビデオ会議全盛の時代ということで色々使ってみたが、人数が増えるとそれなりに重くなり結構なストレスなので、自宅サーバに Jitsi ビデオ会議システムを入れて運用してみた。
オープンソースシステムを自宅で運用するということで、情報漏洩の心配も減るのでお勧めです。
以下、外部から hostname
のドメイン名でアクセスできる環境を前提に話しを進めます。
操作はすべて root 権限で。
構成
OS: Debian GNU/Linux 10.4
ビデオ会議システム: Jitsi-Meet 2.0
インストール
APT パッケージが用意されているのでお手軽である。
公式の Quick Install 通りに。
echo 'deb https://download.jitsi.org stable/' | tee /etc/apt/sources.list.d/jitsi-stable.list
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -
apt update
apt install jitsi-meet
ポート公開
TCP/80, TCP/443, UDP/10000 を外部からアクセスできるように開放する。

自宅サーバなので、光回線ルータも同様にパケットフィルタとIPマスカレードを設定する。
SSL証明書
Let's Encrypt の SSL証明書インストールスクリプトが付いているので、それを実行する。
/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
自宅回線は DynamicDNS だが特に問題はない。
https でアクセスできるようになれば TCP/80 (http) は不要なので閉じてかまわない。閉じよう。
会議室作成制限
ディフォルトでは誰でも会議室を作成できるため、これをインターネットに公開してしまうのはよろしくない。
登録されたユーザのみが会議室を作成できるように制限をかける。会議室のURLを知っている人は、ユーザ登録無しで参加できる。
公式ドキュメントの Secure Domain setup 通りに。
/etc/prosody/conf.avail/hostname.cfg.lua
VirtualHost "hostname"
authentication = "internal_plain"
VirtualHost "guest.hostname"
authentication = "anonymous"
c2s_require_encryption = false
/etc/jitsi/meet/hostname-config.js
var config = {
hosts: {
domain: 'hostname',
anonymousdomain: 'guest.hostname',
/etc/jitsi/jicofo/sip-communicator.properties
org.jitsi.jicofo.auth.URL=XMPP:hostname
Prosody と Jicofo を再起動する。
prosodyctl restart
systemctl restart jicofo.service
ユーザ登録をする。
prosodyctl register username hostname password
クライアント設定
/etc/jitsi/meet/hostname-config.js
リクエストにホスト名を明示しているが、これだとローカルネット内からアクセスしたときに正常に動作しないため無くす。
//bosh: '//hostname/http-bind',
bosh: '/http-bind',
音声がループしているときなどに警告を出す機能だが、邪魔なだけなので無効に。
enableNoisyMicDetection: false,
入室時にニックネームを必ず入力するように。
requireDisplayName: true,
表示言語をディフォルトで日本語に。
defaultLanguage: 'ja',
ディフォルトでは画面共有のフレームレートが最高 5fps に抑えられており、これだとオタク飲み会で必須となる動画を流すには物足りない。10fps まで上げれば見られるものになる。
desktopSharingFrameRate: {
min: 5,
max: 10
},
発話者の音量がメータとして表示される機能であるが、これはクライアントサイドの負荷になるらしい。不要なので無効にする。
disableAudioLevels: true,
負荷試験
という名のオンライン飲み会
サーバハードウェアは、CPU Intel Core i5 (ivy bridge 4core) にメモリ 32GB のデスクトップマシン上で稼働する VirtualBox 内の仮想マシンサーバである。リソースは制限して CPU 2core のメモリ 4GB で稼働。
インターネット回線は、NTTの光回線 100Mbps。
10クライアントでこの程度の負荷である。

サーバリソースにはまだ余裕があるので、実に快適なオンライン飲み会を展開できる。
是非ご自宅に導入してほしい。