搭配 Jitsi Meet 基底的開源視訊會議系統,打造 Webex/Zoom 風格的會議入口,但一切由你掌控:多帳號 / 角色 / 2FA、預約、大廳、完整稽核與 SIEM 外拋。連線模式支援 8x8 JaaS(雲端託管)或自建 Jitsi Meet,一鍵切換。
8x8 自 2018 年起為 Jitsi / Jitsi Meet 的開發與維護公司;8x8 JaaS(Jitsi as a Service)即其官方雲端託管的 Jitsi 服務。

把會議邀請連結到處轉貼、沒有權限與記錄,難以管理也難以稽核。
企業會議入口需要的均已內建,零外部 PHP 套件。
8x8 JaaS(RS256 + kid)或自建 Jitsi Meet(HS256 / 免 JWT),管理介面一鍵切換。
建立 / 進入、亂數命名、近期清單、一鍵複製邀請、QR Code 彈窗。
設定開放時段;未到顯示翻頁時鐘倒數,主持人提前進入即自動放行。
填與會者 email,寄送含 .ics 行事曆的邀請信,可自訂主旨 / 內文範本。
來賓需自填名稱才進場;非開放時段顯示等候 / 倒數 / 已結束頁。
建立會議室可選;主持人進場自動開啟,來賓需經主持人逐一允許才能進入。
admin 看全部、host 只看自己建的;支援 TOTP 雙因素認證。
登入、建室、邀請、設定變更全記錄,可即時外拋 syslog / CEF / GELF。
60 種 Jitsi 介面語言、22 種主題、站台名稱 / logo、登入頁路徑偽裝。
會議時長排行、尖峰同時人數與參與者進出時間軸;JaaS 模式另接 USAGE webhook 統計 MAU。
串接 Jibri 主機錄影服務:線上列表 / 播放 / 下載 / 刪除、主機容量、保留政策(時間 / 容量 / 殘留);主持人可調閱自己會議的錄影。
兩種模式都能在管理介面一鍵切換、不必改程式,依團隊規模與維運能力選擇即可。
適合:小團隊、想快速上線、不想維運伺服器。
適合:重隱私自主、中小規模、具維運能力。
| 項目 | 8x8 JaaS | 自建 Jitsi Meet |
|---|---|---|
| 維運負擔 | 無(全代管) | 需自行維運 |
| 上線速度 | 幾分鐘 | 需先架站 |
| 費用模式 | 免費 Dev 方案(25 MAU)/ 超過依 MAU 計費 | 自有硬體與頻寬 |
| 資料主權 | 經 8x8 雲端 | 完全自有 |
| 錄影 | 內建(依方案) | 搭配自建 Jibri |
| 適合規模 | 不限規模(小團隊到大規模,依 MAU 計費) | 中小型 / 高隱私需求 |
| JWT 簽章 | RS256 + kid | HS256 或免 JWT |
從設計到部署逐項把關。
實際操作畫面一覽。

登入後的主控台:輸入會議室名稱即可一鍵建立或進入會議室,也能亂數產生會議室名稱。下方「近期會議室」清單會顯示每間是誰建立、何時進入、開了多久,以及預約 / 大廳 / 主持人在線上等狀態,所有操作全程稽核。

勾選「限定開放時段」即可設定會議開放時間並寄送含 .ics 行事曆的 Email 邀請;也能勾選「大廳模式」讓主持人逐一允許來賓進入。建立後立即取得邀請連結與 QR Code,可直接開始主持或先複製連結稍後使用。

數據中心一頁掌握使用狀況。兩種模式通用:會議場次與時長、本期會議時長時間軸、主持人排行榜、近 30 天活動折線圖。另有 JaaS 模式專屬的本期 MAU 用量與方案上限、各計費週期歷史趨勢,並可手動校正用量基準(自建模式則自動隱藏這兩項、頁籤改稱「會議統計」)。

登入登出、建立 / 進入會議室、寄送邀請、帳號與設定變更等行為全數留存。可依行為類型、關鍵字與日期範圍篩選,欄位標題可點擊排序,並即時外拋 syslog / CEF / GELF 至 SIEM。

支援多個主持人帳號與角色:admin 可看全部會議室與管理頁,host 只看自己建立的。每個帳號可設定顯示名稱、Email、啟用 TOTP 雙因素認證,並可隨時編輯或停用。

集中管理所有設定:連線模式(8x8 JaaS / 自建 Jitsi Meet)、SMTP 寄信、會議記錄保留天數、Log 外拋、站台名稱與 Logo,以及 22 種外觀主題,一頁搞定。

來賓憑邀請連結進入,須先輸入顯示名稱才能進場,進入會議時自動帶入該名稱。整個來賓流程都套用站台主題與品牌,與主持端體驗一致。

非開放時段時,來賓會看到優雅的翻頁時鐘倒數與會議起訖時間;一旦主持人提前進入,系統每隔數秒自動偵測並放行,來賓無需重整、不必苦等。

調閱自建 Jibri 主機產出的會議錄影:線上播放、下載、刪除,並顯示錄影主機磁碟容量與每筆的大小、長度、狀態。可依會議室 / 主持人 / 參與者搜尋,點任一列展開該場的參與者進出時間軸。權限分明——主持人只看自己主持會議的錄影,管理者可管全部;保留政策(依時間 / 容量 / 殘留檔自動清理)也在此一目了然。

自建 Jitsi Meet 模式專用的會議室介面客製:進入時是否靜音 / 關鏡頭、畫質上限、預設檢視(演講者 / 畫廊)、是否關閉「視訊省頻寬」自動降載,以及逐項勾選工具列要開放的功能(聊天、螢幕分享、舉手、錄影、虛擬背景、共享文件…)。所有設定都在進入會議時自動帶入 Jitsi,無需改動 Jitsi 設定檔。

設定會議錄製者在與會者清單顯示的名稱,並串接自建 Jibri 主機的錄影調閱服務——填入服務 URL 與 token 後即顯示連線狀態與已註冊錄製器數,並附上增減錄製器的文件連結。錄影保留政策可依時間(保留 N 天)、容量(保留可用空間或總量上限)或殘留檔自動清理,預設全部停用以策安全。
兩種安裝方式,資料與設定皆持久化、更新不遺失。
| 項目 | 最低 | 建議 |
|---|---|---|
| PHP | 8.2 | 8.4 |
| Web 伺服器 | Apache + mod_rewrite(AllowOverride All) | 同左 + HTTPS |
| PHP 擴充 | openssl、fileinfo、json、mbstring | 同左 |
| 其他 | 可寫入資料目錄;JaaS 模式需 8x8 私鑰 | Docker 24+ |
# 取得程式並啟用 .htaccess git clone https://github.com/jasoncheng7115/jt-vc-portal.git cd jt-vc-portal a2enmod rewrite headers cp dot.htaccess .htaccess # 持久化資料目錄(預設 /var/jaas-data,可於 config.php 調整) sudo mkdir -p /var/jaas-data && sudo chown www-data:www-data /var/jaas-data # JaaS 模式才需要:放入 8x8 私鑰 sudo mkdir -p keys && sudo cp /path/to/private.key keys/private.key
git clone https://github.com/jasoncheng7115/jt-vc-portal.git
cd jt-vc-portal
docker build --pull -t jt-vc-portal .
mkdir -p /opt/jt-vc-portal/keys /opt/jt-vc-portal/data
chown 33:33 /opt/jt-vc-portal/data
cp /path/to/private.key /opt/jt-vc-portal/keys/private.key # JaaS 模式
docker run -d --restart unless-stopped -p 127.0.0.1:58189:58189 \
-e JTVC_ADMIN_EMAIL="admin@example.com" \
-e JTVC_ADMIN_PASSWORD="請設定強密碼" \
-e JTVC_TRUSTED_PROXIES="127.0.0.1,172.16.0.0/12" \
-v /opt/jt-vc-portal/keys/:/var/www/html/keys \
-v /opt/jt-vc-portal/data/:/var/jaas-data \
--name jt-vc-portal jt-vc-portal
# 不想自己 build,直接下載 Release 打包映像(linux/amd64) curl -LO https://github.com/jasoncheng7115/jt-vc-portal/releases/download/v1.6.1/jt-vc-portal-1.6.1-docker-amd64.tar.gz sha256sum -c jt-vc-portal-1.6.1-docker-amd64.tar.gz.sha256 # 驗證完整性 docker load < jt-vc-portal-1.6.1-docker-amd64.tar.gz # 載入為 jt-vc-portal:latest mkdir -p /opt/jt-vc-portal/keys /opt/jt-vc-portal/data chown 33:33 /opt/jt-vc-portal/data cp /path/to/private.key /opt/jt-vc-portal/keys/private.key # JaaS 模式才需要 docker run -d --restart unless-stopped -p 127.0.0.1:58189:58189 \ -e JTVC_ADMIN_EMAIL="admin@example.com" \ -e JTVC_ADMIN_PASSWORD="請設定強密碼" \ -e JTVC_TRUSTED_PROXIES="127.0.0.1,172.16.0.0/12" \ -v /opt/jt-vc-portal/keys/:/var/www/html/keys \ -v /opt/jt-vc-portal/data/:/var/jaas-data \ --name jt-vc-portal jt-vc-portal:latest
系統對外為 :58189,正式環境建議前面再以 nginx 或 Apache 反向代理掛上 HTTPS。
# nginx 範例 server { listen 443 ssl; server_name your-domain.com; # ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; # ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem; location / { proxy_pass http://127.0.0.1:58189/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
X-Real-IP 取得真實來源 IP(fail2ban 鎖定與稽核用),請務必讓反向代理帶上此 header。公開上線資安重點:設定 JTVC_TRUSTED_PROXIES(逗號分隔 IP/CIDR)只採信可信代理的來源標頭,並以 -p 127.0.0.1:58189:58189 或防火牆限制容器埠只讓反代可達——否則攻擊者可偽造 X-Real-IP 繞過 fail2ban、污染稽核。留空=相容模式(盲信標頭,須搭配埠隔離)。經 Cloudflare 時讓反代由 CF-Connecting-IP 帶入 X-Real-IP。完整 Apache 站台設定範例請見 GitHub README。所有設定與資料(帳號、會議室、稽核、用量等)都存在 DATA_DIR 或掛載卷,更新不會遺失,JSON 結構會自動相容升級。更新前仍建議先備份資料目錄與 keys/。
# 共同:更新前備份(建議) cp -a /opt/jt-vc-portal/data /opt/jt-vc-portal/data.bak-$(date +%Y%m%d) # 方法一:直接安裝 git pull cp dot.htaccess .htaccess # 若 .htaccess 有更新 sudo systemctl reload apache2 # 清 opcache # 方法二:Docker 自行 build git pull docker build --pull -t jt-vc-portal . docker stop jt-vc-portal && docker rm jt-vc-portal docker run -d --restart unless-stopped -p 58189:58189 \ -v /opt/jt-vc-portal/keys/:/var/www/html/keys \ -v /opt/jt-vc-portal/data/:/var/jaas-data \ --name jt-vc-portal jt-vc-portal # 方法三:下載 Release 預建映像(不自行 build) curl -LO https://github.com/jasoncheng7115/jt-vc-portal/releases/latest/download/jt-vc-portal-<新版本>-docker-amd64.tar.gz docker load < jt-vc-portal-<新版本>-docker-amd64.tar.gz docker stop jt-vc-portal && docker rm jt-vc-portal # 再以方法二相同參數重新 docker run
DATA_DIR,換容器不受影響;登入後可從左上版本號確認已更新到新版。自建 Jitsi Meet 與錄影的完整部署 SOP。
從官方 Docker 版 Jitsi Meet 一路設定到與 jt-vc-portal 搭配:架構、連接埠 / NAT、TLS、JWT 與主持人權限、媒體後援 / TURN。
在自建 Jitsi Meet 上加上 Jibri 錄影:VM 需求、snd-aloop、同時多會議室錄製、錄影中文顯示(CJK 字型)、獨立 Jibri VM 實作。
非必要——不安裝完全不影響 Jitsi Meet 與會議運作,只是不提供錄影功能;需要時再加裝即可。