jitsi on debian
การติดตั้ง ระบบการประชุมออนไลน์โดยใช้ jitsi
ข้อมูลอ้างอิง แหล่งที่มาได้รับคำแนะนำจาก เว็บไซต์นี้
ภาพรวมของเนื้อหา
- การติดตั้งโปรแกรมที่จำเป็น ก่อนการติดตั้ง jitsi
- ติดตั้ง jitsi
- ขั้นตอนการปรับแต่ง
สิ่งที่น่าจะต้องเตรียมไว้ให้พร้อมก่อนติดตั้ง
- จดโดเมน และที่สามารถเข้าแก้ไข โดยเพิ่ม A record หรือจัดการ Dns Management ได้
- ต้องเตรียมการเรื่อง การเข้ารหัส SSL Certifications โดยเรียกใช้ https
- ตั้งชื่อ โอสต์ ให้ตรงกับที่เราเข้าไปแก้ไขใน การจัดการโดเมน
- ศึกษาการจัดการโดเมน เพราะที่จดแต่ละที่อาจจะไม่เหมือนกัน
ติดตั้ง แพ็คเก็ตที่จำเป็นสำหรับติดตั้ง
เปลี่ยน user เพื่อให้สะดวกในการติดตั้ง โดยเข้าไปสิทธิ์ ของ Root โดยหากเป็นผู้ใช้ทั่วไป จะมีเครื่องหมาย $ หน้าคำสั่ง แต่ถ้าเป็น root จะเป็นเครื่องหมาย #
$sudo -s
ติดตั้งแพ็คเก็ตที่จำเป็น
#apt install gnupg2 git lsb-release ssl-cert ca-certificates apt-transport-https tree locate software-properties-common dirmngr screen htop nano net-tools zip unzip curl ffmpeg ghostscript libfile-fcntllock-perl curl socat certbot -y
เข้าแก้ไข hosts คำสั่ง vi หรือใช้คำสั่งอื่นที่ถนัดก็ได้ครับ มีหลายตัว เช่น vim nano ในส่วนตัวถนัด vi เพราะความเคยชิน และมาพร้อม linux ไม่ต้องติดตั้งเพิ่ม แต่ หากดูให้ดี คำสั่งด้านบน ก็มีคำสั่ง ติดตั้ง nano ให้ระวังนะครับ คำสั่ง พวกนี้ หากเราพิมพ์ชื่อไฟล์ไม่ถูกมันจะเท่ากับเราสร้างไฟล์ใหม่
# vi /etc/hosts
#echo “deb [arch=amd64] http://nginx.org/packages/mainline/debian $(lsb_release -cs) nginx” | tee /etc/apt/sources.list.d/nginx.list
# echo “deb https://download.jitsi.org stable/” | tee /etc/apt/sources.list.d/jitsi.list
#curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add –
#wget -qO – https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add –
#apt update && apt upgrade -y
#apt remove –purge nginx nginx-extras nginx-common nginx-full apache2 apache2-* -y –allow-change-held-packages
การติดตั้ง Nginx
apt install nginx -y
# systemctl enable nginx.service
# mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak && touch /etc/nginx/nginx.conf
# vi /etc/nginx/nginx.conf
nginx
user www-data;
worker_processes auto;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
multi_accept on; use epoll;
}
http {
server_names_hash_bucket_size 64;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log warn;
set_real_ip_from 127.0.0.1;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
send_timeout 3600;
tcp_nopush on;
tcp_nodelay on;
open_file_cache max=500 inactive=10m;
open_file_cache_errors on;
keepalive_timeout 65;
reset_timedout_connection on;
server_tokens off;
resolver 127.0.0.53 valid=15s;
resolver_timeout 5s;
include /etc/nginx/conf.d/*.conf;
}
# vi /etc/nginx/conf.d/http.conf
nginx
server {
server_name host.dedyn.io;
listen 80 default_server;
listen [::]:80 default_server;
charset utf-8;
root /var/www;
location ^~ /.well-known/acme-challenge {
default_type text/plain;
root /var/www/letsencrypt;
}
location / {
return 301 https://$host$request_uri;
}
}
# service nginx restart
จัดการเกี่ยวกับ Firewall
#mkdir -p /etc/nginx/sites-available
# mkdir -p /etc/nginx/sites-enabled
# mkdir -p /etc/nginx/modules-enabled
แทรกนิด คำสั่ง mkdir คือการสร้างไดว์เร็กเตอรี่ และหากเราต้องการ สร้างไดว์เร็คเตอรี่ย่อยอีกชั้น เราต้องใ้ช้คำสั่ง mkdir -p ไม่งั้นจะสร้างไม่ได้
# apt install ufw -y
# ufw allow 22/tcp
# ufw allow 80/tcp
# ufw allow 443/tcp
# ufw allow 5000/udp
# ufw allow 10000/udp
# ufw logging medium && ufw default deny incoming && ufw enable && service ufw restart
Add Your Heading Text Here
# adduser –disabled-login acmeuser
# vi /etc/sudoers
[..]
User privilege specification
root ALL = (ALL: ALL) ALL
acmeuser ALL = NOPASSWD: / bin / systemctl reload nginx.service
[…]
su – acmeuser
curl https://get.acme.sh | sh
exit
#su – acmeuser -c “.acme.sh/acme.sh –set-default-ca –server letsencrypt”
# mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs
# chmod -R 777 /var/www/letsencrypt /etc/letsencrypt && chown -R www-data:www-data /var/www/ /etc/letsencrypt
# su – acmeuser
TypeScript
# acme.sh --issue -d lms.csd5.info --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd "sudo /bin/systemctl reload nginx.service"
PHP
# acme.sh --issue -d lms.csd5.info --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd "sudo /bin/systemctl reload nginx.service"
#exit
# cd /etc/nginx/conf.d
# mv default.conf default.conf.disabled && touch default.conf
# service nginx restart
# cd /
Add Your Heading Text Here
# apt install -y –no-install-recommends jitsi-meet
กรอก
ขั้นตอนนี้ คือการเลือก SSL certifitcate ว่าจะเลือกแบบไหนระหว่างการสร้างขึ้นมาใหม่ หรือ ใช้ตัวการเข้ารหัสหรือตัวรับรองที่สร้างไว้แล้ว ตามภาพ ให้เลือกตัวล่าง เพราะเราได้สร้างไว้แล้ว
เลือกเส้นทางที่เก็บไฟล์ privkey.pem
เลือก เส้นทางที่เก็บไฟล์ fullchain.perm
# vi /etc/systemd/system.conf
# systemctl daemon-reload
# rm -f /etc/nginx/sites-enabled/lms.csd5.info.conf
# mv /etc/nginx/sites-available/lms.csd5.info.conf /etc/nginx/conf.d/
# cd /etc/nginx/conf.d/
# mv http.conf http.conf.disabled
# vi /etc/nginx/conf.d/lms.csd5.info.conf
# vi /etc/jitsi/meet/lms.csd5.info-config.js
# service nginx restart && service prosody restart && service jicofo restart && service jitsi-videobridge2 restart
# nginx -t
# vi /etc/nginx/conf.d/lms.csd5.info.conf
# service nginx restart && service prosody restart && service jicofo restart && service jitsi-videobridge2 restart