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.

Fonte: https://jitsi.github.io/handbook/docs/intro

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

2 Resultados

  1. Se quiser mexer na interface:

    cd /usr/share/jitsi-meet
    # vim interface_config.js 

    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

    # vim lang/main.json 
    # vim lang/languages-ptBR.json

    headerTitle”: “Jitsi Meet – Remontti”,

    Ajustar tamanho do logo

    vim /css/all.css

    .watermark.leftwatermark{width:71px;height:32px}

    Editor: Inkscape

  2. Felipe Gonçalves disse:

    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?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *