用docker安裝視訊會議 jitsi-meet
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