jitsi 大名鼎鼎, 我們公司用了10年的openfire內部即時通訊(xmpp server), 用戶端就是用jitsi(我都簡稱神燈巨人).
多年前發現 jitsi 有meet套件可以套用在openfire裡面, 使用結果好爛幾乎不能用, 用ubuntu安裝,也一直很不穩定, 改版很頻繁.
隨著新冠病毒出現, 節神 丟出開源視訊這個議題,我才想起應該是時候,要再測試看看了, 試用結果還不錯,可以讓公司的人使用.
**經過多次測試, 建議使用 “虛擬機加單個對外ip網卡” (非docker,無nat) 才能真正穩定 – 2020/05/06
https://github.com/jitsi/docker-jitsi-meet
# 先想好要用哪個主機名稱, 先把letsencrypt搞定
certbot-auto certonly --standalone --preferred-challenges http -d <full host name>
1.
# root
# 下載最新的版本, 複製預設的設定檔案
git clone https://github.com/jitsi/docker-jitsi-meet && cd docker-jitsi-meet
cp env.example .env
1.1 安全性增加了
./gen-passwords.sh
2.修改 .env , 視自己docker狀況調整以下參數
CONFIG=~/.jitsi-meet-cfg
# Exposed HTTP port
HTTP_PORT=8000
# Exposed HTTPS port
HTTPS_PORT=8443
# System time zone
# 這我調整taipei
TZ=Asia/Taipei
# Public URL for the web service
# 這我是沒調整,因為我是用httpd reverse proxy
#PUBLIC_URL=https://<full host name>
ENABLE_LETSENCRYPT=1
# 告訴 jitsi 說我的letsencrypt是什麼
LETSENCRYPT_DOMAIN=<full host name>
3.依照.env的 CONFIG 參數, 建立相關目錄
mkdir -p ~/.jitsi-meet-cfg/{web/letsencrypt,transcripts,prosody,jicofo,jvb}
4.視情況修改 docker-compose.yml
volumes:
- ${CONFIG}/web:/config
- /etc/letsencrypt:/etc/letsencrypt
- ${CONFIG}/transcripts:/usr/share/jitsi-meet/transcripts
5.上線兼啟動(這部份讓人產生錯覺,很快網頁可以連線,但實際上要5分鐘才正常,畢竟用了4個container)
docker-compose up -d
6.修改解析度(這我沒怎麼測試,預設是720,為了頻寬著想,所以改480)
# ~/.jitsi-meet-cfg 這個目錄依剛開始安裝的.env設定而不同
cd ~/.jitsi-meet-cfg/web
vi config.js
##
constraints: {
video: {
aspectRatio: 16 / 9,
height: {
ideal: 480,
max: 480,
min: 240
}
}
},
Optional
1. 啟用認證
# 修改 .env 啟用登入認證(我使用最基本的內部認證, ldap怎麼都不成功...XD)
# Enable authentication
ENABLE_AUTH=1
# Enable guest access
ENABLE_GUESTS=0
# Select authentication type: internal, jwt or ldap
AUTH_TYPE=internal
1.1 啟用內部認證後,如何新增使用者
# 進入container
docker exec -it docker-jitsi-meet_prosody_1 bash
# 建立使用者,後面那串meet.jitsi不需要修改哦
prosodyctl --config /config/prosody.cfg.lua register <使用者名稱> meet.jitsi
2. 增加google日曆功能
1 先想好使用哪個google 帳號讓大家能自由存取,可個人帳號也可使用g suite帳號
建議該帳號的calendar只用來預約會議室使用
2 登入進入 https://console.cloud.google.com/apis/dashboard
新增project,進入Credentials新增 OAuth 2.0 client IDs , 新增後會給你一個client id,記下來
xxxx.apps.googleusercontent.com
3 進入 AAuth consent screen , 設定該 auth 的使用範圍
4 修改 vi ~/.jitsi-meet-cfg/web/config.js
啟用google calendar , 加上先前的client id,
enableCalendarIntegration: true,
googleApiApplicationClientID:”xxx.apps.googleusercontent.com”,
5.重啟
cd ~/docker-jitsi-meet/ ; docker-compose restart
6 登入jitsi meet 進行相關授權, 若出現未經允許存取calendar,就不管了,允許吧.
https://github.com/jitsi/jitsi-meet/blob/master/doc/integrations.md