Z powodu „human malware” panującego obecnie na świecie potrzebowałem czegoś łatwego w obsłudze co umożliwiło by prowadzenie wideokonferencji ludziom o średnich umiejętnościach informatycznych bez konieczności instalowania dodatkowego oprogramowania.
Wybór padł na Jitsi meet które jest open source i darmowe do zastosowania na swoim serwerze.
W moim przypadku gdzie już posiadam serwer www (nginx) postanowiłem postawić jitsi meet na osobnej VM na której nie będę konfigurował osobno nginx, a wykorzystam mój główny.
Tak więc na czysto postawiony Debian 10 instalujemy jitsi meet używając oficjalnej instrukcji.
1. Na początek edytujemy plik /etc/hostname aby zawierał w sobie pełną nazwę naszej subdomeny na które będzie skonfigurowane jitsi:
meet.sloniupl.eu
2 . Później edytujemy plik /etc/hosts i konfigurujemy tak jak w instrukcji:
127.0.0.1 localhost meet.sloniupl.eu
3. Wykonujemy po kolei poniższe polecenia (jako su):
echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
apt-get install apt-transport-https
apt-get update
apt install --no-install-recommends jitsi-meet
reboot
4. Na naszym głównym serwerze do którego jest dostęp z zewnątrz po https konfigurujemy nowy virtual host (meet.sloniupl.eu) [należy również pamiętać o wcześniejszym skonfigurowaniu wymaganych wpisów DNS].
Nasza VM na której jest zainstalowane teraz jitsi posiada ip 192.168.1.12:
server {
server_name meet.sloniupl.eu;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000";
access_log /var/log/nginx/meet_access.log;
listen [::]:443 ssl; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/sloniupl.eu-0001/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/sloniupl.eu-0001/privkey.pem; # managed by Certbot
proxy_ssl_server_name on;
location / {
ssi on;
proxy_pass https://192.168.1.12/;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
}
# BOSH
location /http-bind {
proxy_pass http://192.168.1.12:5280/http-bind;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
}
# xmpp websockets
location /xmpp-websocket {
proxy_pass http://192.168.1.12:5280/xmpp-websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
tcp_nodelay on;
}
}
server {
if ($host = meet.sloniupl.eu) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name meet.sloniupl.eu www.meet.sloniupl.eu;
listen 80;
listen [::]:80;
return 404; # managed by Certbot
}
Dodam, że wykorzystuje let’s encrypt do generowania certyfikatów ssl dla mojego serwera.
5. Aby całość poprawnie działała kiedy serwer jest postawiony za NAT należy dodać na końcu pliku /etc/jitsi/videobridge/sip-communicator.properties
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=<NASZ ADRES IP LAN - u mnie 192.168.1.12>
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=<NASZ ADRES IP WAN>
Oraz zmodyfikować w tym pliku linijkę
org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES aby wyglądała tak:
org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES=stun.l.google.com:19302,stun1.l.google.com:19302,stun2.l.google.com:19302
6. W pliku /etc/jitsi/videobridge/config ustawiamy wartość JVB_HOST na nasz FQDN:
JVB_HOST=meet.sloniupl.eu
Oraz zmieniamy opcję JVB_OPTS aby wyglądała tak jak poniżej:
JVB_OPTS="--apis=xmpp,rest"
7. Na koniec na routerze przekierowujemy porty 4443/tcp oraz 10000/udp na nasz serwer jitsi.
Gotowe 🙂
Dodatkowo jeśli używasz na tej VM firwewall to odblokuj dostęp do poniższych portów:
443/tcp
4443/tcp
5280/tcp
10000/udp
80/tcp
5222
5269
5347
Teraz możemy się cieszyć wideokonferencjami ze znajomymi i rodziną.
Należny tylko pamiętać, że taka stronka jest niezabezpieczona i każdy możne na niej uruchomić wideokonferencję.
Jeśli chcesz ją zabezpieczyć to zapraszam do tego poradnika:
https://github.com/jitsi/jicofo#secure-domain
Linkografia:
https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md
Mam Debian testing który bardzo wolno mi startuje około dwóch minut potrzebuje aby się uruchomił.
systemd-analyze blame
1min 50.922s plymouth-quit-wait.service
1min 30.020s user@1000.service
Na forum debiana podpowiadali to
systemctl disable plymouth-start
update-grub
Jednak na forum Debiana nie dali rady mi pomóc, może ty jako spec od Debiana coś mi doradzisz?
Niestety ni pomogę tak na sucho 🙂
Jeśli masz problemy na testing to zainstaluj stable i zobacz czy tez będziesz miał tak długi start.
Niestety stable ma zbyt stare pakiety na desktop, dlatego muszę testing ogarnąć.
Jeśli używasz na desktopie to może Mint bardziej ci spasuje (ale nie wiem jak ze świeżością pakietów) 🙂