Nesta era digital de mestres e aventureiros nossos meios de comunicação ficaram cada vez mais dependentes. O problema é que cada plataforma possuí seus pros e contras hoje vamos falar de uma alternativa diferente o Jitsi.

Em minha campanha pessoal alguns jogadores estavam tendo problemas com o Discord (audio/video) devido ao consumo excessivo de recursos, fazendo-os ter uma péssima experiencia de jogo, que é o que não queremos.

Com isso decidimos testar o Jitsi e a integração com o Foundry VTT e por sinal conseguimos resolver quase todos nossos problemas de performance, agora vamos ao que interessa!

Caso você queria utilizar o servidor publico direto no Foundry VTT cliquei aqui!

Para continuar com a instalação do seu proprio servidor Jitsi continue lendo!


Neste tutorial eu estou utilizando os seguintes programas como base:

Este tutorial funciona para qualquer Ubuntu ou Debian seja Cloud, VPS ou Servidor Físico Privado.

Para editar as configurações eu utilizo o VIM e Tmux. Para utilizar minhas configurações você pode utilizar meu Ansible Playbook e meu Dotfiles

Requisitos

  • Um domínio registrado e configurado.
  • Um servidor Ubuntu ou Debian
  • Docker & docker-compose

Instalando Docker & docker-compose

Nosso Setup completo sera baseado em Docker que e um sistema de contêineres.

O que e docker?

De forma bem resumida, podemos dizer que o Docker é uma plataforma aberta, criada com o objetivo de facilitar o desenvolvimento, a implantação e a execução de aplicações em ambientes isolados. Foi desenhada especialmente para disponibilizar uma aplicação da forma mais rápida possível.(Gomes R., Docker Para Desenvolvedores)

Instalar o Docker no seu servidor e super simples basta seguir os passos da documentação oficial, eu não irei cobrir isso aqui pois ha centenas de tutoriais sobre isso na internet. Eu particularmente recomendo os da LinuxTips.

Documentação oficial

Tambem vamos precisar do Docker Compose que precisa de somente 2 comandos para instalar, conforme a documentação oficial.

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Instalando e Configurando o Docker Jitsi Meet

Instalar o Docker Jitsi Meeting e bem simples voce pode fazer isso de duas maneiras:

O repositório oficial: https://github.com/jitsi/docker-jitsi-meet

Utilizando o git

Se voce esta familiarizado com o a ferramenta de controle de Versionamento Git basta voce executar o seguinte passo

 git clone https://github.com/jitsi/docker-jitsi-meet && cd docker-jitsi-meet
 git checkout tags/stable-5765 -b stable-5765

Utilizando arquivo compactado tar.gz

# Faca download da ultima versao do docker-gitsi
curl -o docker-jitsi-meet.tar.gz https://codeload.github.com/jitsi/docker-jitsi-meet/tar.gz/refs/tags/stable-5765
# Descomprima o arquivo para a pasta docker-jitsi-meet
tar -xvzpf docker-jitsi-meet.tar.gz ; mv docker-jitsi-meet-stable-5765/ docker-jitsi-meet

Agora que temos o Jitsi repositório disponível podemos começar as configurações.

Primeiro precisamos criar o arquivo de configuracao do Jitsi copiando do exemplo com o seguinte comando.

cp env.example .env
Um arquivo oculto no GNU/Linux é identificado por um "." no inicio do nome (por exemplo, .bashrc). Arquivos ocultos não aparecem em listagens normais de diretórios, deve ser usado o comando ls -a para também listar arquivos ocultos. (Maziolli G, Guia Foca Linux)

Agora precisamos criar todos os diretórios que o Jitsi precisa com o comando

mkdir -p ~/.jitsi-meet-cfg/{web/letsencrypt,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}

Agora podemos editar o arquivo de configuração (.env) e adicionar as informações necessárias para nossa configuração de um servidor seguro.

A principal configuração e com seu editor favorito (VIM) e procure as linhas abaixo e edite as.

# Exposed HTTP port
HTTP_PORT=80 #tutorial
--
# Exposed HTTPS port
HTTPS_PORT=443 #tutorial
--
# Public URL for the web service (required)
PUBLIC_URL=https://meet.nerdweek.com.br:8443 #tutorial linha 45
--
# Enable Let's Encrypt certificate generation
ENABLE_LETSENCRYPT=1 #tutorial linha 75
--
# Domain for which to generate the certificate
LETSENCRYPT_DOMAIN=meet.nerdweek.com.br #tutorial linha 78
--
# E-Mail for receiving important account notifications (mandatory)
LETSENCRYPT_EMAIL=email@nerdweek.com.br #tutorial linha 81
--
# Enable authentication
ENABLE_AUTH=1 #tutorial linha 134
--
# Enable guest access
ENABLE_GUESTS=1 #tutorial linha 137
--
# Select authentication type: internal, jwt or ldap
AUTH_TYPE=internal #tutorial linha 140

As configurações acima fazem o seguinte:

  • HTTP_PORT, HTTPS_PORT portas utilizadas precisam ser alteradas pois sao necessárias para o LetsEncrypt (Para deixar as portas padrões você precisa utilizar o Reverse Proxy.)
  • PUBLIC_URL - A URL onde o seu servidor sera acessível. (Nao irei cobrir configuração de domínio, pois varia de provedor pra provedor.)
  • LETSENCRYPT - Cria um certificado SSL para a utilização do HTTPS seguro no seu Jitsi server a integração e feita internamente, e possível utilizar Proxy Reverso também e desabilitar essa configuração (Proxy Reverso não sera parte deste tutorial)
  • ENABLE_AUTH, ENABLE_GUEST, AUTH_TYPE - Isso habilita a necessidade de usuário autenticado para criar Meeting, e permite pessoas se juntarem a uma Meeting que foi criada por um usuário autenticado.

Agora precisamos gerar as chaves internas do Jitsi com o seguinte comando

./gen-passwords.sh

Estamos na reta final, agora vamos iniciar os servicos do Jitsi utilizando o docker-compose

docker-compose up -d

Agora vamos adicionar nosso usuário padrão

 docker exec -it docker-jitsi-meet_prosody_1 /bin/bash
 prosodyctl --config /config/prosody.cfg.lua register hugo.prudente meet.jitsi My$3cr37P4$$

Testando o Jitsi

Para testar o Jitsi e muito simples abra a URL definida no passo anterior seu navegador favorito.

  • Crie uma sala com um nome
  • Utilize seu usuário e senha definido no passo anterior

Eureka!!!!

Você pode também utilizar do seu celular com o aplicativo oficial, na GooglePlay ou no AppleStore

Se você não utiliza o Foundry VTT e só queria ter acesso ha um servidor privado de vídeo conferencia para falar com seus amigos e família você pode parar de ler por aqui :)

Configurando no Foundry VTT

Na tela de configuração dos módulos procure por JitsiWebRTC e instale.

fonte: nerdweek.com.br

Com seu mundo aberto vá na aba de Gerenciamento de Módulos (Manage Modules) e ative o Jitsi WebRTC client.

fonte: nerdweek.com.br

Agora em Configurações de Sistema (Configure Settings) na aba Core Settings, clique em Configure Audio/Video e mude de Disabled para Audio/Video Enabled.

Para isso é necessário que voce possua o Certificado SSL (HTTPS) no seu Foundry VTT, esse passo não será apresentado neste tutorial.
fonte: nerdweek.com.br

O sistema ira recarregar e você terá acesso ao video e o audio, utilizando o Jitsi Community Server!

fonte: Nerdweek.comb.r

Agora vamos a etapa de trocar para o nosso servidor :)

Novamente em Configurações de Sistema (Configure Settings) na aba Core Settings, clique em Configure Audio/Video e mude para aba server troque de meet.jitsi para Custom Server.

Agora vamos preencher com os dados que criamos anteriormente, usuario e senha no commando do prosody e o endereço do servidor da PUBLIC_URL.

fonte: nerdweek.com.br

Clique em save changes e a tela ira recarregar e  pronto você esta usando o novo server :)

fonte: nerdweek.com.br

Outros problemas podem ocorrer como toda e qualquer instalação, para suporte vocês podem me contactar no Discord do Nerdweek ou no Discord do Foundry VTT Brasil (Não Oficial).


Se você gostou deste conteúdo, por favor considere suportar o Nerdweek contribuindo para nosso Patreon, Apoia.se ou se inscrevendo no Youtube através do Premium ou na Twitch.tv através do Prime. Nós também gostaríamos de convida-los para nos seguir no Twitter, Instagram e Facebook compartilhar com seus amigos que amam RPG e juntar-se a nós na nossa comunidade no Discord, onde podemos discutir sobre este e muitos outros assuntos. Muito obrigado por ler!