Skip to content

Instantly share code, notes, and snippets.

@momoseijin
Last active November 11, 2023 07:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save momoseijin/cfe4160a8903103e2965ba64c4472454 to your computer and use it in GitHub Desktop.
Save momoseijin/cfe4160a8903103e2965ba64c4472454 to your computer and use it in GitHub Desktop.
How to install Jitsi Meet on Ubuntu 22.04
# 取得したドメインのDNS設定を完了しておく(TTL : 1800)
# Ubuntu 22.04 はインストールしておく
# 必要なものを root でインストールとリポジトリ追加
sudo apt install nginx gnupg2 openjdk-11-jdk curl apt-transport-https
sudo apt-add-repository universe
sudo apt update
# ホスト名の設定
sudo hostnamectl set-hostname meet.example.com
# ホストファイルの編集(取得したIPアドレスとホスト名を追加)
sudo nano /etc/hosts
127.0.0.1 localhost
x.x.x.x meet.example.com
# Prosody のリポジトリ追加
sudo curl -sL https://prosody.im/files/prosody-debian-packages.key -o /etc/apt/keyrings/prosody-debian-packages.key
echo "deb [signed-by=/etc/apt/keyrings/prosody-debian-packages.key] http://packages.prosody.im/debian $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/prosody-debian-packages.list
sudo apt install lua5.2
# Jitsi Meet のリポジトリ追加
curl -sL https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg'
echo "deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/" | sudo tee /etc/apt/sources.list.d/jitsi-stable.list
# 全部追加が終わったらUPDATEをする
sudo apt update
sudo apt upgrade -y
アップデート完了後は、一回サーバを再起動しておくといい
# ファイアウォールの設定
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10000/udp
sudo ufw allow 22/tcp
sudo ufw allow 3478/udp
sudo ufw allow 5349/tcp
sudo ufw enable
# 設定したファイアウォールのチェック
sudo ufw status verbose
# Jitsi Meet のインストール
sudo apt install jitsi-meet
途中で以下の2つを聞かれる
◆ホスト名を聞かれるので設定した meet.example.com を入力
◆「Let's Encrypt Certificate」を選択して、SSLの証明書を取得する
完了すると、https://meet.example.com で Jitsi Meet が動いている
しかし、この状態だと、誰でもミーティングを開始することができるので、サーバリソースがいくらあっても足りなくなってしまう
以下の設定を実施し、自分だけがホストなってミーティングが作成できるように、セキュリティの設定を行う
# /etc/prosody/conf.avail/[your-hostname].cfg.lua ファイルの編集
sudo nano /etc/prosody/conf.avail/meet.example.com.cfg.lua
以下部分を internal_hashed に書き換え
VirtualHost "meet.example.com"
authentication = "internal_hashed"
さらに上記の VurtualHost の設定項目の下にゲスト用の VirtualHost 設定を追加
VirtualHost "guest.meet.example.com"
authentication = "anonymous"
c2s_require_encryption = false
# /etc/jitsi/meet/[your-hostname]-config.js ファイルの編集
sudo nano /etc/jitsi/meet/meet.example.com-config.js
以下部分に anonymousdomain を追加
var config = {
hosts: {
domain: 'meet.example.com',
anonymousdomain: 'guest.meet.example.com',
...
},
...
}
# /etc/jitsi/jicofo/jicofo.conf ファイルの編集
sudo nano /etc/jitsi/jicofo/jicofo.conf
jicofo {
authentication: {
enabled: true
type: XMPP
login-url: meet.example.com
}
}
# Prosody でユーザを追加(このユーザでホストになり、ミーティングを始めることができるようにする)
ユーザ名とパスワードの部分は各自設定
sudo prosodyctl register [username] jitsi-meet.example.com [password]
# prosody、jicofo、jitsi-videobridge2 を再起動
systemctl restart prosody
systemctl restart jicofo
systemctl restart jitsi-videobridge2
# 以上で自分専用の Jitsi Meet サーバの完成
【補足】
AWSやGCCなどで建てた場合は、内部IPアドレスと外部IPアドレスがあるので、その場合は以下を設定しないと音声やビデオが使えないらしい
(まだ自分でやってないので、未確認)
# /etc/jitsi/videobridge/sip-communicator.properties を編集
もともと記載されている以下をコメントアウトする
org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES
以下を追加する
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=[内部IP.Address]
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=[外部IP.Address]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment