Aprenda instalar o Jitsi Meet, uma ferramenta de videoconferências de código aberto
Que tal ter o seu próprio “Zoom ou Google Meet”? Neste tutorial vamos aprender instalar o Jitsi Meet de forma simples para você poder criar seu próprio servidor de videoconferências.
Jitsi é uma coleção de projetos de código aberto que fornecem recursos de videoconferência de última geração que são seguros, fáceis de usar e fáceis de hospedar.
Requerimentos
Debian 11 (Bullseye) 64 bits instalação mínima pronta
Configurado em seu DNS autoritativo um subdomínio exemplo “meet.remontti.com.br” apontado para o IPv4/6 do seu servidor.
Ajustes
Tenha seu servidor atualizado! (E repita isso uma vez por mês após)
# apt update; apt upgrade
Nesta instalação estarei utilizando como exemplo “meet.remontti.com.br”, ajuste sempre pelo seu.
Ajuste o nome do servidor:
hostnamectl set-hostname meet.remontti.com.br
vim /etc/hosts
Adicione o IP Domínio de acordo com seu DNS, exemplo:
255.200.200.200 meet.remontti.com.br
Caso esteja utilizando um IP com NAT terá que ter as portas 80/tcp 443/tcp 4443/tcp 10000/udp 3478/udp 5349/tcp abertas/redirecionadas para o IP do seu servidor.
Instale alguns pacotes básicos que serão necessários:
# apt install apt-transport-https gnupg2 curl wget
Instalando Jitsi
Vamos adicionar o repositório oficial do jitsi (stable)
# 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 | apt-key add -
Instale o mesmo
# apt update # apt install jitsi-meet
Informe seu domíno:
Selecione Generate a net self-signed certificate
Agora instale o certbot para gerar os certificados com lets encript.
# apt install certbot
Gere um certificado Let’s Encrypt, basta executar:
/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
------------------------------------------------------------------------- This script will: - Need a working DNS record pointing to this machine(for domain meet.remontti.com.br) - Download certbot-auto from https://dl.eff.org to /usr/local/sbin - Install additional dependencies in order to request Let’s Encrypt certificate - If running with jetty serving web content, will stop Jitsi Videobridge - Configure and reload nginx or apache2, whichever is used - Configure the coturn server to use Let's Encrypt certificate and add required deploy hooks - Add command in weekly cron job to renew certificates regularly You need to agree to the ACME server's Subscriber Agreement (https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf) by providing an email address for important account notifications Enter your email and press [ENTER]: noc@remontti.com.br Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator webroot, Installer None Account registered. Requesting a certificate for meet.remontti.com.br Performing the following challenges: http-01 challenge for meet.remontti.com.br Using the webroot path /usr/share/jitsi-meet for all unmatched domains. Waiting for verification... Cleaning up challenges Running deploy-hook command: /etc/letsencrypt/renewal-hooks/deploy/0000-coturn-certbot-deploy.sh Output from deploy-hook command 0000-coturn-certbot-deploy.sh: Configuring turnserver IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/meet.remontti.com.br/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/meet.remontti.com.br/privkey.pem Your certificate will expire on 2022-06-22. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le Configuring nginx
Crie um scrip para renovação do certificado
# mkdir /root/scripts/ # vim /root/scripts/renova-certificado
#!/bin/bash # Pare o serviço web /usr/bin/systemctl stop nginx # Aguarda 10 seg sleep 10 # Renova o certificado /usr/bin/certbot renew -q # Aguarda o certificado renovar sleep 30 # Inicie o serviço web /usr/bin/systemctl restart nginx # Reinicie os serviços /usr/bin/systemctl systemctl restart prosody jicofo jitsi-videobridge2
Adicione ao cron para ser executado umas vez por semana toda às 3h.
# chmod +x /root/scripts/renova-certificado # echo '00 30 1 * * root /root/scripts/renova-certificado' >> /etc/crontab
Reinicie o cron para ler a nova tarefa.
# systemctl restart cron
Systemd/Limits: As implantações padrão em sistemas que usam systemd terão valores padrão baixos para processos máximos e arquivos abertos. Se a ponte usada espera um número maior de participantes, os valores padrão precisam ser ajustados (os valores padrão são bons para menos de 100 participantes).
Se achar necessário aumente estes valores:
# echo 'DefaultLimitNOFILE=65000' >> /etc/systemd/system.conf # echo 'DefaultLimitNPROC=65000' >> /etc/systemd/system.conf # echo 'DefaultTasksMax=65000' >> /etc/systemd/system.conf
Reinicie o daemon
# systemctl daemon-reload
Verifique se os valores foram alterados
# systemctl show --property DefaultLimitNPROC # systemctl show --property DefaultLimitNOFILE # systemctl show --property DefaultTasksMax
Reinicie o jitsi
# systemctl status jitsi-videobridge2
# cat /proc/`cat /var/run/jitsi-videobridge/jitsi-videobridge.pid`/limits
Veja se Max processes e Max open files estão com limit: 65000
Limit Soft Limit Hard Limit Units ... Max processes 65000 65000 processes Max open files 65000 65000 files ...
Neste momento seu servidor já esta rodando de forma anônima, onde qualquer um pode criar já uma sala de reunião.
Porém é possível permitir que apenas usuários autenticados criem novas salas de conferência. Sempre que uma nova sala estiver prestes a ser criada, o Jitsi Meet solicitará um nome de usuário e senha. Depois que a sala for criada, outras pessoas poderão ingressar no domínio anônimo.
# vim /etc/prosody/conf.avail/meet.remontti.com.br.cfg.lua
Localize authentication e altere anonymous para internal_hashed:
authentication = "anonymous"
Para
authentication = "internal_hashed"
Descomente:
https_ports = { };
Ainda no mesmo arquivo adicione as linhas a baixo ante de “– Proxy to jicofo’s user JID…”
OBS: Não é necessário você criar uma entra “guest.meet” em seu DNS.
VirtualHost "guest.meet.remontti.com.br" authentication = "anonymous" c2s_require_encryption = false
Agora em /etc/jitsi/meet/SEUDOMINO-config.js faça:
# vim /etc/jitsi/meet/meet.remontti.com.br-config.js
Localize anonymousdomain, vai estar comentada com “//”, remova o comentário e adicione seu “guest.meet.remontti.com.br”.
// anonymousdomain: 'guest.example.com',
Ficando
anonymousdomain: 'guest.meet.remontti.com.br',
Em jicofo.conf será necessário fazer os ajustes para autenticação.
# vim /etc/jitsi/jicofo/jicofo.conf
Adicione em jicofo { … }
authentication: { enabled: true type: XMPP login-url: jitsi-meet.example.com }
Ficando assim:
jicofo { authentication: { enabled: true type: XMPP login-url: meet.remontti.com.br } xmpp: { client: { client-proxy: focus.meet.remontti.com.br } trusted-domains: [ "recorder.meet.remontti.com.br" ] } bridge: { brewery-jid: "JvbBrewery@internal.auth.meet.remontti.com.br" } }
Reinicie os serviços
# systemctl restart prosody jicofo jitsi-videobridge2
Agora ao criar uma nova reunião
Será necessário autenticar:
Então para criar um usuário (ou mais) administrador faça em seu terminal:
# prosodyctl register meuusuario meet.remontti.com.br minhasenha
Para deletar um usuário:
# prosodyctl deluser meuusuario@meet.remontti.com.br
Com sua sala de reunião pronta você pode desejar fazer alguns ajustes em mais configurações […]
Ajuste seus dados
Informe seu nome e e-mail se desejar
Você pode ainda fazer outros ajustes como:
Clique em OK para aplicar.
Outro ajuste que é interessante são as opções de segurança:
É interessante você Habilitar sala de espera, assim novos usuários terão que informar seu nome e você precisará aprovar sua entrada.
Agora quando alguém entrar na sala ira aparecer a seguinte tela:
O administrador ira autoriza-lo:
Bom a interface é bem intuitiva então acredito que não terá dificuldas. E não deixe de ler as integrações, bem como o restante da documentação, pois o projeto tem muita coisa que não foi mostrada aqui.
Gostou?
Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!
Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.
Se quiser mexer na interface:
APP_NAME: ‘Meet Remontti’,
DEFAULT_LOGO_URL: ‘images/logoremontti.svg’,
DEFAULT_WELCOME_PAGE_LOGO_URL: ‘images/logoremontti.svg’,
JITSI_WATERMARK_LINK: ‘https://remontti.com.br’,
NATIVE_APP_NAME: ‘Jitsi Meet (Remontti)’,
SHOW_JITSI_WATERMARK: true, //Se quiser ter a marca dagua
headerTitle”: “Jitsi Meet – Remontti”,
Ajustar tamanho do logo
.watermark.leftwatermark{width:71px;height:32px}
Editor: Inkscape
Olá boa tarde, aqui funcionou tudo certo, excelente trabalho e explicação, apenas um detalhe que não consegui ainda, o recurso de gravação sempre dar erro, precisa instalar algum serviço extra para gravar as conferencias?