jitsi サーバを GCP 上に立てました.
その記録です.
jitsi-videobridge
の設定に気づかず, しばらく音と映像がでない状態でハマっていました.
jitsi meet とは
- zoom のような多人数ビデオチャットアプリケーションです.
- github
- 公式ページ jitsi.org
2020年3月の 東京エリアDebian勉強会で使用されていて, 気になったので自前で構築してみました.
VM インスタンスの準備
- GCP にアクセスし Compute Engine を選択します.
- VM インスタンス を選択します
-
Create
を選択し, インスタンスの作成に入ります
- インスタンスの名前や, リージョンを適宜選択します
- image に
Ubuntu 18.04 LTS
を選択します. また,http
,https
の接続を許可します.
- 必要であれば, プリエンプティブを
on
にします.
- 後ほど設定する firewall rule を適用するため, 'Network tag' を設定します
- 外部向けIPアドレスを予約します.
- 内容を確認し, インスタンスを作成します.
Firewall ルールの設定
- VPC network > Firewall rule を選択します.
- create firewall rule を選択します.
-
Target tags
には先程のインスタンスに指定したタグ名を,Source IP ranges
には下記の内容を指定します.
- 許可するプロトコルは udp, 範囲は 10000-20000 を指定します.
- すべてが整っていれば, ネットワークの確認で次のように表示されます.
Domain の準備
- 適宜ドメインを取得して, 先程のインスタンスの外部IPにポイントします.
- e.g. meet.hogefuga.com
VM インスタンスへのログイン
- VM インスタンスのメニューより SSH 接続が可能です
OpenJDK のインストール
- OpenJDK のリポジトリを追加します.
sudo add-apt-repository ppa:openjdk-r/ppa
- OpenJDK をインストールします.
sudo apt install openjdk-8-jre-headless -y
- インストール後に確認します.
java -version
Nginx のインストール
- Nginx をインストールします.
sudo apt install nginx -y
- Nginx をサービスに登録し, ブート時に起動するよう設定します.
sudo systemctl start nginx
sudo systemctl enable nginx
jitsi のインストール
- jitsi のリポジトリを apt に登録します.
sudo wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
sudo sh -c "echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list"
- jitsi をインストールします.
sudo apt update
sudo apt install jitsi-meet -y
- 途中, ダイアログが発生します. 最初のダイアログは, jitsi サーバのドメイン名を入力します.
- e.g. meet.hogefuga.com
- 次のダイアログは, 証明書に関するダイアログです Let's encrypt を使うため, 上段の選択肢を選択します.
ufw の設定
- ufw を設定します
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw allow in 10000:20000/udp
hostname の設定
- hostname を設定します
sudo hostnamectl set-hostname hoge
-
/etc/hosts
をひらきます
sudo vim /etc/hosts
- 取得したドメイン名, 設定したホスト名を2行目に追記します
127.0.1.1 meet.hogefuga.com hoge
jitsi-videobridge の設定
- 映像, 音声が配信されない場合, この設定を行います.
- 次のファイルを開きます
sudo vim /etc/jitsi/videobridge/sip-communicator.properties
- VM インスタンスの外部IP, 内部IPをそれぞれ設定し, 追記します.
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=[VMインスタンスの内部IP]
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=[VMインスタンスの外部IP]
Let's encrypt のスクリプト実行
- jitsi meet に付属する let's encrypt の証明書を取得するスクリプトを実行します
- メールアドレスを質問されるので, 入力します.
sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
動作確認
- 取得したドメインにアクセスし, 動作を確認します.