Jitsi Meet Self-Hosting Guide debian/ubuntu server

5 min read

Trong bài viết này tôi chỉ để cập cách cài đặt trên debian/ubuntu server

Jitsi Meet là 1 dự án mã nguồn mở cho phép xây dựng giải pháp hội nghị video (video conference) – giống Google Meet – một cách đơn giản và dễ dàng nhất.

Hãy làm theo các bước sau để cài đặt nhanh Jitsi-Meet trên hệ thống GNU/Linux dựa trên Debian. Các bản phân phối sau được hỗ trợ ngay lập tức:

  • Debian 10 (Buster) hoặc mới hơn
  • Ubuntu 22.04 (Jammy Jellyfish) hoặc mới hơn (có thể sử dụng Ubuntu 18.04 hoặc 20.04, nhưng Prosody phải được cập nhật lên phiên bản 0.11+ trước khi cài đặt)

GHI CHÚ: Nhiều bước cài đặt yêu cầu root hoặc sudo truy cập. Vì vậy, bạn nên có sudo/root và cho phép chúng truy cập vào hệ thống của mình.

Các gói cần thiết và cập nhật:

Bạn sẽ cần các gói sau:

  • gnupg2
  • nginx-full
  • sudo=> Chỉ cần thiết nếu bạn sử dụngsudo
  • curl=> Hoặc wget để thêm kho gói Jitsi

Đảm bảo hệ thống của bạn được cập nhật và cài đặt các gói cần thiết:

Chạy dưới dạng roothoặc với sudo:

sudo apt update
sudo apt install apt-transport-https

Trên hệ thống Ubuntu, Jitsi yêu cầu các phần phụ thuộc từ universekho lưu trữ gói của Ubuntu. Để đảm bảo tính năng này được bật, hãy chạy lệnh này:

sudo apt-add-repository universe

Truy xuất các phiên bản gói mới nhất trên tất cả các kho lưu trữ:

sudo apt update

Cài đặt Jitsi Meet

Tên miền máy chủ của bạn và thiết lập DNS

Quyết định tên miền mà máy chủ của bạn sẽ sử dụng. Ví dụ, meet.example.org.

Đặt bản ghi DNS A cho tên miền đó bằng cách sử dụng:

  • địa chỉ IP công cộng của máy chủ của bạn, nếu nó có IP công cộng riêng; hoặc
  • địa chỉ IP công cộng của bộ định tuyến của bạn, nếu máy chủ của bạn có địa chỉ IP riêng (RFC1918) (ví dụ: 192.168.1.2) và kết nối qua bộ định tuyến của bạn thông qua Dịch địa chỉ mạng (NAT).

Nếu máy tính/máy chủ hoặc bộ định tuyến của bạn có địa chỉ IP động (địa chỉ IP thay đổi liên tục), bạn có thể sử dụng dịch vụ dns động thay thế. Ví dụ DuckDNS .

Ví dụ về bản ghi DNS:

Loại bản ghiTên máy chủIP công cộngTTL (Giây)
Ameet.example.orgIP công cộng của máy chủ cuộc họp của bạn ( x.x.x.x)1800

Thiết lập Tên miền đủ điều kiện (FQDN) (tùy chọn )

Nếu máy được sử dụng để lưu trữ phiên bản Jitsi Meet meet.example.orgđã thiết lập FQDN (ví dụ: ) trong DNS, bạn có thể thiết lập FQDN bằng lệnh sau:

sudo hostnamectl set-hostname meet.example.org

Sau đó thêm FQDN tương tự vào /etc/hoststệp:

127.0.0.1 localhost
x.x.x.x meet.example.org

GHI CHÚ: x.x.x.x là địa chỉ IP công cộng của máy chủ của bạn.

Cuối cùng, trong cùng một bài kiểm tra máy, bạn có thể ping FQDN bằng:

ping "$(hostname)"

Nếu tất cả đều hoạt động như mong đợi, bạn sẽ thấy: meet.example.org

Thêm kho lưu trữ

Thao tác này sẽ thêm kho lưu trữ Prosody để cài đặt Prosody cập nhật, điều này cần thiết cho các tính năng bao gồm cả tính năng sảnh.

Ubuntu 18.04 và 20.04

echo deb http://packages.prosody.im/debian $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list
wget https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add -
sudo apt install lua5.2

Ubuntu 22.04

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

Thêm kho lưu trữ

Thao tác này sẽ thêm kho lưu trữ jitsi vào nguồn gói của bạn để cung cấp gói Jitsi Meet.

Ubuntu 18.04 và 20.04

curl 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 > /dev/null

Ubuntu 22.04

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

Cập nhật tất cả các nguồn gói:

sudo apt update

Thiết lập và cấu hình 

Các cổng sau cần được mở trong tường lửa của bạn để cho phép lưu lượng truy cập đến máy chủ Jitsi Meet:

  • 80 TCP=> Để xác minh/gia hạn chứng chỉ SSL với Let’s Encrypt. Yêu cầu
  • 443 TCP=> Để truy cập chung vào Jitsi Meet. Yêu cầu
  • 10000 UDP=> Dành cho các cuộc họp âm thanh/video mạng chung. Yêu cầu
  • 22 TCP=> Để truy cập Máy chủ của bạn bằng SSH (thay đổi cổng tương ứng nếu không phải là 22). Yêu cầu
  • 3478 UDP=> Để truy vấn máy chủ gây choáng (coturn, tùy chọn, cần config.jsthay đổi để kích hoạt nó).
  • 5349 TCP=> Đối với giao tiếp video/âm thanh của mạng dự phòng qua TCP (chẳng hạn như khi UDP bị chặn), được cung cấp bởi coturn. Yêu cầu

Nếu bạn đang sử dụng ufw, bạn có thể sử dụng các lệnh sau:

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

Kiểm tra trạng thái tường lửa bằng:

sudo ufw status verbose

Sử dụng SSH

Để biết thêm chi tiết về cách sử dụng và tăng cường quyền truy cập SSH, hãy xem tài liệu Debian hoặc Ubuntu tương ứng .

Cài đặt Jitsi Meet

Lưu ý : Trình cài đặt sẽ kiểm tra xem Nginx hoặc Apache có hiện diện hay không (theo thứ tự đó) và định cấu hình máy chủ ảo trong máy chủ web mà nó tìm thấy để phục vụ Jitsi Meet.

Nếu bạn đang chạy Nginx trên cổng 443 trên cùng một máy, cấu hình máy chủ quay vòng sẽ bị bỏ qua vì nó sẽ xung đột với cổng 443 hiện tại của bạn.

sudo apt install jitsi-meet

Reference

Avatar photo

Clean Code: Nguyên tắc viết hàm trong lập trình…

Trong quá trình phát triển phần mềm, việc viết mã nguồn dễ đọc, dễ hiểu là yếu tố then chốt để đảm bảo code...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc comment trong lập trình

Trong lập trình, code không chỉ là một tập hợp các câu lệnh để máy tính thực thi, mà còn là một hình thức...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc xử lý lỗi (Error Handling)

Trong quá trình phát triển phần mềm, việc xử lý lỗi không chỉ là một phần quan trọng mà còn ảnh hưởng trực tiếp...
Avatar photo Dat Tran Thanh
4 min read

Leave a Reply

Your email address will not be published. Required fields are marked *