기본적으로 jitsi meet은 ip로는 서비스가 현실적으로 어려우며, https를 기본으로 사용하므로
사용가능한 도메인이 있어야 합니다.
공유기를 사용하시면 해당 공유기에서 ddns 서비스를 이용하시면 될 듯 하며, 인터넷을 검색해 보면 방법이 많으니 참조 하세요.
-
jisi meet은 윈도우즈OS를 대상으로 설치가 불가능 하니 리눅스 중 우분투(ubuntu 18.04)를 기반으로 설명합니다.
ubuntu 20.04 등에서는 일부 설치가 안되거나 오류가 발생하는 부분들이 있는데 이는 별도로 설명 하겠습니다. -
jitsi meet의 설치 패키지는 apache, nginx등의 웹서버가 설치되어 있다면 해당 웹서버의 설정을 변경 합니다.
만일 웹서버가 없으면 nginx를 설치하게 됩니다. 이글에서는 nginx를 대상으로 설명합니다. -
jitsi meet 설치중 java(openjdk-8-jdk)가 미 설치되어 있으면 자동으로 설치하게 됩니다.
이글에서의 기본 셋팅은 아래와 같습니다.
- OS : Ubuntu 18.04 LTS
- Domain : example.domain (사용할 수 있는 도메인)
- Httpd : nginx
- 공식 페이지인 https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart 참조
순서
- hostname setting
- port forword(and ufw open)
- jitsi-meet install
- config 수정/셋팅
1. hostname setting
아래와 같이 hosts 에 사용할 도메인을 등록해 주어야 합니다.
해당 도메인이 설정되어 있지 않으면 정상 작동 하지 않습니다.
sudo hostnamectl **_example.domain_**
sudo sed -i 's/^127.0.1.1.\*$/127.0.1.1 /g' /etc/hosts
2. port forword(and ufw open)
## Jitsi Meet used port 80, 443, 3478, 5349, 10000, 20000(UDP)
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw allow 4443/tcp
sudo ufw allow 3478/udp
sudo ufw allow 5349/tcp
sudo ufw allow 10000:20000/udp
sudo ufw enable
3. jitsi-meet install
편의상 sudo su 로 root 권한으로 설치 합니다.
sudo apt update
# Ensure support for apt repositories served via HTTPS
sudo apt install apt-transport-https
# add jitsi-meet repositories
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"
sudo apt update
# jitsi-meet install
sudo apt install jitsi-meet
# input domain 에 사용할 도메인을 등록합니다.
**_example.domain_**
# 인증키 신규 생성 선택
설치는 패키지가 알아서 처리 해 주므로 크게 어려움이 없습니다.
이렇게 정상적으로 패키지는 설치가 완료되었으며, TLS 인증을 위한 인증서 생성을 추가하게 됩니다.
jitsi meet 은 친절하게 인증서를 생성하는 스크립트를 제공해주므로
전체 설치가 끝나면 아래 스크립트를 실행 해 주시면됩니다.
sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
주의 하실 일은 해당 스크립트를 실행 하게 되면 등록한 도메인에 80포트로 도메인을 확인 하므로
반드시 80 포트를 오픈해야 합니다.
설치가 완료 된 후,
크롬 브라우져에서
https://example.domain 로 접속 하시면 jitsi meet 서비스를 보실 수 있습니다.
4. config 수정/셋팅
서버가 NAT 뒤에 있다면 sip-communicator.properties 파일에 2줄을 추가 해 줍니다.
sudo vi /etc/jitsi/videobridge/sip-communicator.properties:
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=<Local.IP.Address>
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=<Public.IP.Address>
#참고1
jitsi-meet 삭제(jitsi-meet remove)
jitsi meet 을 제거는 아래와 같이 설치된 패키지를 삭제 하면 됩니다.
주의 하실 일은 간혹 모든 설치 패키지가 삭제 되지 않을 수 있습니다.
따라서 전체 패키지 삭제 명령을 두어 차례 실행 해 주시면 됩니다.
아울러 설치시 생성된 디렉토리도 같이 삭제 해주시면 됩니다.
sudo apt purge jigasi jitsi-meet jitsi-meet-web-config jitsi-meet-prosody jitsi-meet-turnserver jitsi-meet-web jicofo jitsi-videobridge2
sudo rm -rf /usr/share/jitsi-videobridge
sudo rm -rf /etc/jitsi/jicofo
sudo rm -rf /var/log/prosody/
# sudo rm -rf /etc/prosody/
#참고2 별도 인증서 설치
간혹 무료 인증서를 사용 하시는 분들은 기존의 인증서를 이용 하실 수 있습니다.
대표적으로 letsencrypt 를 이용하시는 경우
생성된 인증서를 jitsi meet 설치 시 인증서 파일의 경로를 입력해 주시면 됩니다.
/etc/letsencrypt/live/example.domain/fullchain.pem;
/etc/letsencrypt/live/example.domain/privkey.pem;
#참고3 jitsi meet 구성요소
jitsi meet 을 설치하면 설치되는 모듈이 꽤 많아서 복잡해 보 일 수 있습니다.
간략하게 설치되는 모듈(패키지)의 역활은 다음과 같습니다.
-
Jitsi Videobridge : 화상 회의를 제공하는 WebRTC 호환 JavaScript 애플리케이션
WebRTC를 이용한 화상 통화 애플리케이션 입니다... jitsi meet의 핵심모듈입니다. -
Jitsi Videobridge (jvb) : 회의 참가자간에 비디오 스트림을 라우팅하도록 설계된 WebRTC 호환 서버
WebRTC를 이용한 화상 통화 서버 입니다... jitsi meet의 핵심모듈입니다. -
Jitsi Conference Focus (jicofo) : 참가자와 videobridge 간의 미디어 세션을 관리하는 모듈입니다.
-
Jitsi Gateway to SIP (jigasi) :일반 SIP 클라이언트가 Jitsi Meet 컨퍼런스에 참여할 수있는 서버 측 애플리케이션
음성 통화를 위한 모듈입니다(?) -
Jibri : Jitsi Meet 회의를 녹화 및 / 또는 스트리밍하기위한 도구 모음입니다.
가상 프레임 버퍼에서 렌더링 된 Chrome 인스턴스를 시작하고 ffmpeg로 출력을 캡처 및 인코딩하여 작동하는 Jitsi Meet 컨퍼런스를 녹화 및 / 또는 스트리밍하기위한 도구 -
Prosody : 메세징에 사용되는 XMPP 서버
혹시라도 jitsi meet을 이용한 개발 및 변경등을 고려 하신다면 아래 각 모듈별 통신 흐름과 사용 포트등의 개념을 숙지 하시는 것이 좋습니다.
jitsi meet network and use Port
+ +
| |
| |
v |
443 |
+-------+ |
| | |
| Nginx | |
| | |
+--+-+--+ |
| | |
+------------+ | | +--------------+ |
| | | | | | |
| jitsi-meet +<---+ +--->+ prosody/xmpp | |
| |files 5280 | | |
+------------+ +--------------+ v
5222,5347^ ^5347 4443,10000
+--------+ | | +-------------+
| | | | | |
| jicofo +----^ ^----+ videobridge |
| | | |
+--------+ +-------------+
https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-manual#network-description
+ +
| |
| |
v v
80, 443 TCP 443 TCP, 10000 UDP
+--------------+ +---------------------+
| nginx | 5222, 5347 TCP | |
| jitsi-meet |<-------------------+| jitsi-videobridge |
| prosody | | | |
| jicofo | | +---------------------+
+--------------+ |
| +---------------------+
| | |
+----------+| jitsi-videobridge |
| | |
| +---------------------+
|
| +---------------------+
| | |
+----------+| jitsi-videobridge |
| |
+---------------------+
https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-scalable
댓글