Servidor de Chat · 15 min read · Nov 01, 2025

Como Instalar e Criar um Servidor de Chat usando Matrix Synapse e Element no Ubuntu 22.04

Matrix é um padrão aberto para comunicação descentralizada e criptografada de ponta a ponta. É uma coleção de servidores e serviços que se comunicam entre si usando uma API padronizada que sincroniza em tempo real. Ele usa servidores domésticos para armazenar informações de conta e histórico de chat. Se um servidor doméstico falhar, outros servidores podem continuar a comunicação sem problemas devido à natureza da descentralização. Você pode usar um servidor doméstico Matrix hospedado por outra pessoa ou hospedar o seu próprio para manter o controle sobre seus dados.

Neste tutorial, você aprenderá como instalar e criar um servidor de chat usando o Synapse, uma implementação de servidor doméstico do Matrix. O Element é um cliente web Matrix construído usando o Matrix React SDK. Isso permitirá que você ofereça chat Matrix na web. Você também pode usar o servidor com qualquer outro cliente Matrix de sua escolha. Também estaremos instalando o servidor Coturn para habilitar chamadas de voz e vídeo. O serviço Coturn é opcional se você não estiver interessado em usá-lo.

Pré-requisitos

  1. Um servidor rodando Ubuntu 22.04.
  2. Um usuário não-sudo com privilégios de root.
  3. O Firewall descomplicado (UFW) está habilitado e em execução.
  4. Nomes de Domínio Totalmente Qualificados (FQDN) para Matrix, Element e Coturn apontando para seu servidor. Usaremos matrix.example.com, element.example.com e coturn.example.com respectivamente para os três serviços.
  5. Certifique-se de que tudo esteja atualizado. $ sudo apt update && sudo apt upgrade

Passo 1 - Configurar o Firewall

Antes de instalar qualquer pacote, o primeiro passo é configurar o firewall para abrir portas para HTTP, HTTPS e Synapse.

Verifique o status do firewall.

$ sudo ufw status

Você deve ver algo como o seguinte.

Status: ativo

Para                         Ação      De
--                         ------      ----
OpenSSH                    PERMITIR   Em qualquer lugar
OpenSSH (v6)               PERMITIR   Em qualquer lugar (v6)

Abra as portas HTTP, HTTPS e Synapse no firewall.

$ sudo ufw allow 8448
$ sudo ufw allow http
$ sudo ufw allow https

Verifique o status novamente para confirmar.

$ sudo ufw status
Status: ativo

Para                         Ação      De
--                         ------      ----
OpenSSH                    PERMITIR   Em qualquer lugar                  
8448                       PERMITIR   Em qualquer lugar                  
80/tcp                     PERMITIR   Em qualquer lugar                  
443                        PERMITIR   Em qualquer lugar                  
OpenSSH (v6)               PERMITIR   Em qualquer lugar (v6)             
8448 (v6)                  PERMITIR   Em qualquer lugar (v6)             
80/tcp (v6)                PERMITIR   Em qualquer lugar (v6)             
443 (v6)                   PERMITIR   Em qualquer lugar (v6)

Passo 2 - Instalar o Matrix Synapse

Adicione a chave GPG do Matrix.

$ sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg

Adicione o repositório APT do Matrix.

$ echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/matrix-org.list

Atualize a lista de repositórios do sistema.

$ sudo apt update

Instale o Matrix Synapse.

$ sudo apt install matrix-synapse-py3

Durante a instalação, você será solicitado a informar o nome do servidor, que faz parte do seu ID Matrix. Insira o nome de domínio do Matrix em seu lugar. Isso atuará como o endereço do seu servidor doméstico.

Você também será perguntado se deseja ou não enviar estatísticas anonimizadas sobre seu servidor doméstico de volta ao Matrix. Digite N para recusar.

Você pode alterar essas configurações mais tarde no arquivo /etc/matrix-synapse/conf.d/server_name.yaml.

O serviço do Matrix Synapse é habilitado e iniciado durante a instalação. Verifique o status do serviço.

$ sudo systemctl status matrix-synapse
? matrix-synapse.service - Synapse Matrix homeserver
     Loaded: loaded (/lib/systemd/system/matrix-synapse.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-09-26 09:38:38 UTC; 1min 19s ago
    Process: 12926 ExecStartPre=/opt/venvs/matrix-synapse/bin/python -m synapse.app.homeserver --config-path=/etc/matrix-synapse/homeserver.yaml --config-path=/etc/matrix-synapse/conf.d/ --generate-key>   Main PID: 12931 (python)
      Tasks: 8 (limit: 2238)
     Memory: 87.3M
        CPU: 4.180s
     CGroup: /system.slice/matrix-synapse.service
             ??12931 /opt/venvs/matrix-synapse/bin/python -m synapse.app.homeserver --config-path=/etc/matrix-synapse/homeserver.yaml --config-path=/etc/matrix-synapse/conf.d/

Sep 26 09:38:36 matrix matrix-synapse[12926]: Generating signing key file /etc/matrix-synapse/homeserver.signing.key
Sep 26 09:38:37 matrix matrix-synapse[12931]: This server is configured to use 'matrix.org' as its trusted key server via the
Sep 26 09:38:37 matrix matrix-synapse[12931]: 'trusted_key_servers' config option. 'matrix.org' is a good choice for a key
Sep 26 09:38:37 matrix matrix-synapse[12931]: server since it is long-lived, stable and trusted. However, some admins may
Sep 26 09:38:37 matrix matrix-synapse[12931]: wish to use another server for this purpose.
Sep 26 09:38:37 matrix matrix-synapse[12931]: To suppress this warning and continue using 'matrix.org', admins should set
Sep 26 09:38:37 matrix matrix-synapse[12931]: 'suppress_key_server_warning' to 'true' in homeserver.yaml.
Sep 26 09:38:37 matrix matrix-synapse[12931]: --------------------------------------------------------------------------------
Sep 26 09:38:38 matrix matrix-synapse[12931]: Config is missing macaroon_secret_key
Sep 26 09:38:38 matrix systemd[1]: Started Synapse Matrix homeserver.

Passo 3 - Instalar e Configurar PostgreSQL

Usaremos o repositório APT oficial do PostgreSQL para instalar. Execute o seguinte comando para adicionar a chave GPG do PostgreSQL.

$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null

Adicione o repositório APT à sua lista de fontes.

$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Atualize o repositório do sistema.

$ sudo apt update

Agora, você pode instalar o PostgreSQL usando o seguinte comando.

$ sudo apt install postgresql postgresql-contrib

Verifique o status do serviço PostgreSQL.

$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Mon 2022-09-26 09:41:36 UTC; 2min 14s ago
    Process: 15586 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 15586 (code=exited, status=0/SUCCESS)
        CPU: 1ms

Sep 26 09:41:36 matrix systemd[1]: Starting PostgreSQL RDBMS...
Sep 26 09:41:36 matrix systemd[1]: Finished PostgreSQL RDBMS.

Você pode ver que o serviço está habilitado e em execução por padrão.

Faça login na conta do sistema postgres.

$ sudo -su postgres

Crie um novo usuário de banco de dados e um banco de dados para o PostgreSQL.

$ createuser --pwprompt synapse
$ createdb --encoding=UTF8 --locale=C --template=template0 --owner=synapse synapse

Saia da conta postgres.

$ exit

Passo 4 - Instalar Nginx

Para o ambiente de produção, é recomendado executar o servidor Synapse usando um proxy Nginx.

O Ubuntu 22.04 vem com uma versão mais antiga do Nginx. Para instalar a versão mais recente, você precisa baixar o repositório oficial do Nginx.

Importe a chave de assinatura do Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Adicione o repositório para a versão estável do Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Atualize os repositórios do sistema.

$ sudo apt update

Instale o Nginx.

$ sudo apt install nginx

Verifique a instalação.

$ nginx -v
nginx version: nginx/1.22.0

Inicie o servidor Nginx.

$ sudo systemctl start nginx

Passo 5 - Instalar SSL

Precisamos instalar o Certbot para gerar o certificado SSL. Você pode instalar o Certbot usando o repositório do Ubuntu ou pegar a versão mais recente usando a ferramenta Snapd. Usaremos a versão Snapd.

O Ubuntu 22.04 vem com o Snapd instalado por padrão. Execute os seguintes comandos para garantir que sua versão do Snapd esteja atualizada.

$ sudo snap install core
$ sudo snap refresh core

Instale o Certbot.

$ sudo snap install --classic certbot

Use o seguinte comando para garantir que o comando Certbot possa ser executado criando um link simbólico para o diretório /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Execute o seguinte comando para gerar um Certificado SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d matrix.example.com

O comando acima fará o download de um certificado para o diretório /etc/letsencrypt/live/matrix.example.com em seu servidor.

Gere um certificado de grupo Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Para verificar se a renovação do SSL está funcionando bem, faça um teste do processo.

$ sudo certbot renew --dry-run

Se você não ver erros, está tudo pronto. Seu certificado será renovado automaticamente.

Passo 6 - Configurar o Matrix Synapse

Você pode configurar o servidor Matrix através do arquivo /etc/matrix-synapse/homeserver.yaml, mas não é recomendado, pois ele é sobrescrito após cada atualização. Para uso em produção, você deve colocar arquivos de configuração na pasta /etc/matrix-synapse/conf.d.

A instalação do Synapse criou dois arquivos de configuração na pasta /etc/matrix-synapse/conf.d.

$ ls /etc/matrix-synapse/conf.d
report_stats.yaml  server_name.yaml

Crie um novo arquivo de configuração para o banco de dados e abra-o para edição.

$ sudo nano /etc/matrix-synapse/conf.d/database.yaml

Cole as seguintes linhas no editor. Substitua o campo your-password pela senha do usuário PostgreSQL que você criou no passo 3. Substitua localhost pelo endereço IP do seu servidor, se você estiver hospedando o banco de dados em outro lugar.

database:
  name: psycopg2
  args:
    user: synapse
    password: 'your-password'
    database: synapsedb
    host: localhost
    cp_min: 5
    cp_max: 10

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Crie uma chave de registro secreta. A chave deve ser protegida porque permitirá que qualquer um registre um novo usuário, mesmo que o registro esteja desativado.

$ echo "registration_shared_secret: '$(cat /dev/urandom | tr -cd '[:alnum:]' | fold -w 256 | head -n 1)'" | sudo tee /etc/matrix-synapse/conf.d/registration_shared_secret.yaml

Por padrão, o Synapse habilita indicadores de presença que mostram se uma pessoa está online. Isso pode causar alto uso de CPU, portanto, você pode desativá-lo. Crie um novo arquivo de configuração para isso.

$ sudo nano /etc/matrix-synapse/conf.d/presence.yaml

Cole a seguinte linha no editor.

presence:
  enabled: false

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Reinicie o serviço Synapse para aplicar as alterações.

Crie um novo usuário matrix. Você será solicitado a informar seu nome de usuário e senha. Como este é o primeiro usuário que estamos criando, digite yes quando perguntado se deseja tornar o usuário um administrador.

$ register_new_matrix_user -c /etc/matrix-synapse/conf.d/registration_shared_secret.yaml http://localhost:8008
Novo usuário local [navjot]: navjot
Senha: 
Confirmar senha: 
Tornar admin [não]: sim
Enviando solicitação de registro...
Sucesso!

Se você deseja abrir o registro público, crie um novo arquivo de configuração.

$ sudo nano /etc/matrix-synapse/conf.d/registration.yaml

Cole as seguintes linhas nele.

enable_registration: true

Por padrão, o Synapse não permite registros sem verificação de e-mail. Para habilitar a verificação de e-mail, cole as seguintes linhas.

registrations_require_3pid:
  - email

email:
  smtp_host: mail.example.com
  smtp_port: 587

  # Se o servidor de e-mail não tiver autenticação, pule estas 2 linhas
  smtp_user: '[email protected]'
  smtp_pass: 'senha'

  # Opcional, requerer criptografia com STARTTLS
  require_transport_security: true

  app_name: 'HowtoForge Example Chat'  # define o valor para %(app)s em notif_from e assunto do e-mail
  notif_from: "%(app)s <[email protected]>"

Para desativar a verificação de e-mail, cole a seguinte linha em vez disso.

enable_registration_without_verification: true

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Reinicie o Synapse para aplicar a configuração.

$ sudo systemctl restart matrix-synapse

Passo 7 - Configurar Nginx

Abra o arquivo /etc/nginx/nginx.conf para edição.

$ sudo nano /etc/nginx/nginx.conf

Adicione a seguinte linha antes da linha include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Crie e abra o arquivo /etc/nginx/conf.d/synapse.conf para edição.

$ sudo nano /etc/nginx/conf.d/synapse.conf

Cole o seguinte código nele.

# impor HTTPS
server {
    # Porta do cliente
    listen 80;
    listen [::]:80;
    server_name matrix.example.com;
    return 301 https://$host$request_uri;
}

server {
    server_name matrix.example.com;

    # Porta do cliente
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    # Porta de federação
    listen 8448 ssl http2 default_server;
    listen [::]:8448 ssl http2 default_server;

    access_log  /var/log/nginx/synapse.access.log;
    error_log   /var/log/nginx/synapse.error.log;

    # Configuração TLS
    ssl_certificate /etc/letsencrypt/live/matrix.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/matrix.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/matrix.example.com/chain.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;

    location ~ ^(/_matrix|/_synapse/client) {
            proxy_pass http://localhost:8008;
            proxy_http_version 1.1;

            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Host $host;

            # O Nginx por padrão permite apenas uploads de arquivos de até 1M de tamanho
            # Aumente client_max_body_size para corresponder ao max_upload_size definido em homeserver.yaml
            client_max_body_size 50M;
    }
}

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado após terminar.

Verifique a sintaxe do arquivo de configuração do Nginx.

$ sudo nginx -t
nginx: o arquivo de configuração /etc/nginx/nginx.conf a sintaxe está ok
nginx: teste do arquivo de configuração /etc/nginx/nginx.conf bem-sucedido

Reinicie o serviço Nginx.

$ sudo systemctl restart nginx

Passo 8 - Instalar Coturn

Você precisará instalar um servidor de Traversal Using Relays around NAT (TURN) para habilitar chamadas de voz e vídeo. Para isso, instalaremos o pacote Coturn. Se você não precisa dessa funcionalidade, pode pular esta etapa.

O Ubuntu 22.04 não vem com o pacote Coturn devido a um problema de bug que já foi resolvido. No entanto, há outra maneira de instalar o Coturn usando um repositório não oficial. Opcionalmente, você também pode usar o Docker para instalar o Coturn, mas não usaremos esse método, pois está fora do escopo deste tutorial.

Adicione o repositório não oficial do Coturn.

$ sudo add-apt-repository ppa:ubuntuhandbook1/coturn

Instale o Coturn.

$ sudo apt install coturn

Abra as portas TURN e UDP.

$ sudo ufw allow 3478
$ sudo ufw allow 5349
$ sudo ufw allow 49152:65535/udp

Gere um certificado SSL para o Turn ( turn.example.com).

$ sudo certbot certonly --nginx -d turn.example.com

Gere um segredo de autenticação e salve-o no arquivo de configuração.

$ echo "static-auth-secret=$(cat /dev/urandom | tr -cd '[:alnum:]' | fold -w 256 | head -n 1)" | sudo tee /etc/turnserver.conf

Abra o arquivo de configuração para edição.

$ sudo nano /etc/turnserver.conf

Cole as seguintes linhas nele abaixo do segredo de autenticação.

use-auth-secret
realm=turn.example.com
cert=/etc/letsencrypt/live/turn.example.com/fullchain.pem
pkey=/etc/letsencrypt/live/turn.example.com/privkey.pem

# VoIP é UDP, não há necessidade de TCP
no-tcp-relay

# Não permitir tráfego para faixas de IP privadas
deno-multicast-peers
denied-peer-ip=0.0.0.0-0.255.255.255
denied-peer-ip=10.0.0.0-10.255.255.255
denied-peer-ip=100.64.0.0-100.127.255.255
denied-peer-ip=127.0.0.0-127.255.255.255
denied-peer-ip=169.254.0.0-169.254.255.255
denied-peer-ip=172.16.0.0-172.31.255.255
denied-peer-ip=192.0.0.0-192.0.0.255
denied-peer-ip=192.0.2.0-192.0.2.255
denied-peer-ip=192.88.99.0-192.88.99.255
denied-peer-ip=192.168.0.0-192.168.255.255
denied-peer-ip=198.18.0.0-198.19.255.255
denied-peer-ip=198.51.100.0-198.51.100.255
denied-peer-ip=203.0.113.0-203.0.113.255
denied-peer-ip=240.0.0.0-255.255.255.255
denied-peer-ip=::1
denied-peer-ip=64:ff9b::-64:ff9b::ffff:ffff
deno-peer-ip=::ffff:0.0.0.0-::ffff:255.255.255.255
deno-peer-ip=100::-100::ffff:ffff:ffff:ffff
deno-peer-ip=2001::-2001:1ff:ffff:ffff:ffff:ffff:ffff:ffff
deno-peer-ip=2002::-2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff
deno-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
deno-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff

# Limitar o número de sessões por usuário
user-quota=12
# Limitar o número total de sessões
total-quota=1200

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Reinicie o Coturn para aplicar a configuração.

$ sudo systemctl restart coturn

Crie um novo arquivo de configuração do Synapse para o Coturn.

$ sudo nano /etc/matrix-synapse/conf.d/turn.yaml

Cole as seguintes linhas nele. Substitua o valor de turn_shared_secret pelo valor de static-auth-secret do arquivo urnserver.conf.

turn_uris: [ "turn:turn.example.com?transport=udp", "turn:turn.example.com?transport=tcp" ]
turn_shared_secret: 'static-auth-secret'
turn_user_lifetime: 86400000
turn_allow_guests: True

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Reinicie o Synapse para aplicar as alterações.

$ sudo systemctl restart matrix-synapse

Passo 9 - Acessar o Matrix

Você pode acessar o Chat Matrix usando o cliente web do Element em https://app.element.io. Clique no botão Entrar para prosseguir.

Página de Login do Element Web

Clique no link Editar sob Servidor Doméstico. Insira matrix.example.com como seu servidor doméstico.

Cliente Element Servidor Doméstico Personalizado

Se o cliente detectar seu servidor doméstico corretamente, a borda e o texto ficarão verdes, caso contrário, serão exibidos em vermelho. Clique em Continuar para prosseguir.

Login do Servidor Doméstico Personalizado do Element

Clique no botão Entrar para fazer login. Você será solicitado a criar um backup seguro e criptografado.

Backup Seguro do Matrix

Selecione a opção Inserir uma Frase de Segurança para criar uma frase de segurança que será necessária toda vez que você fizer login. Clique em Continuar para prosseguir.

Frase de Segurança do Element

Insira uma frase de segurança e clique no botão Continuar para prosseguir. Você será solicitado a confirmá-la novamente na próxima tela.

Confirmar Frase de Segurança do Element

Insira a frase novamente e clique em Continuar para prosseguir.

Popup de Chave de Segurança do Element

Você receberá um conjunto de chaves de segurança que poderá usar se esquecer sua frase de segurança. Clique no botão Baixar para salvá-las.

Clique no botão Continuar para prosseguir.

Verificar Senha do Element

Você será solicitado a informar sua senha de conta. Insira a senha e clique no botão Continuar para finalizar a configuração do backup criptografado.

Painel do Cliente Web do Element

Criamos uma sala de chat em grupo chamada Howtoforge, conforme mostrado acima.

Passo 10 - Instalar Element

Instale o pacote jq para instalar o processador de texto JSON.

$ sudo apt install jq

Crie um diretório para o Element.

$ sudo mkdir -p /var/www/element

Crie um novo arquivo para obter a versão mais recente do Element.

$ sudo nano /var/www/element/update.sh

Adicione as seguintes linhas a ele.

#!/bin/sh
set -e

install_location="/var/www/element"
latest="$(curl -s https://api.github.com/repos/vector-im/element-web/releases/latest | jq -r .tag_name)"

cd "$install_location"

[ ! -d "archive" ] && mkdir -p "archive"
[ -d "archive/element-${latest}" ] && rm -r "archive/element-${latest}"
[ -f "archive/element-${latest}.tar.gz" ] && rm "archive/element-${latest}.tar.gz"

wget "https://github.com/vector-im/element-web/releases/download/${latest}/element-${latest}.tar.gz" -P "archive"
tar xf "archive/element-${latest}.tar.gz" -C "archive"

[ -L "${install_location}/current" ] && rm "${install_location}/current"
ln -sf "${install_location}/archive/element-${latest}" "${install_location}/current"
ln -sf "${install_location}/config.json" "${install_location}/current/config.json"

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Torne o arquivo executável.

$ sudo chmod +x /var/www/element/update.sh

Execute o script para baixar o Element.

$ sudo /var/www/element/update.sh

Passo 11 - Configurar Element

Copie o mesmo arquivo de configuração do elemento.

$ sudo cp /var/www/element/current/config.sample.json /var/www/element/config.json

Abra o arquivo de configuração para edição.

$ sudo nano /var/www/element/config.json

Encontre as seguintes linhas.

"m.homeserver": {
    "base_url": "https://matrix-client.matrix.org",
    "server_name": "matrix.org"
},

Altere o endereço do servidor doméstico Matrix padrão para o seu servidor doméstico e remova a variável server_name.

"m.homeserver": {
    "base_url": "https://matrix.example.com",
    "server_name": "matrix.element.com"  
},

Se você quiser usar seu próprio nome em vez de Element no título do site, altere o nome da marca.

"brand": "Howtoforge Example Chat",

Defina a variável disable_guests como verdadeira para proibir convidados de usar o Element.

"disable_guests": true,

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Gere um certificado SSL para o cliente Element.

$ sudo certbot certonly --nginx -d element.example.com

Crie e abra o arquivo /etc/nginx/conf.d/element.conf para edição.

$ sudo nano /etc/nginx/conf.d/element.conf

Cole as seguintes linhas nele.

server {
    listen 80;
    listen [::]:80;
    server_name element.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name element.example.com;

    root /var/www/element/current;
    index index.html;

    access_log  /var/log/nginx/element.access.log;
    error_log   /var/log/nginx/element.error.log;

    add_header Referrer-Policy "strict-origin" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Frame-Options "SAMEORIGIN" always;

    # Configuração TLS
    ssl_certificate /etc/letsencrypt/live/element.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/element.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/element.example.com/chain.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
}

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Verifique a sintaxe do arquivo de configuração do Nginx.

$ sudo nginx -t
nginx: o arquivo de configuração /etc/nginx/nginx.conf a sintaxe está ok
nginx: teste do arquivo de configuração /etc/nginx/nginx.conf bem-sucedido

Reinicie o serviço Nginx.

$ sudo systemctl restart nginx

Você pode acessar o cliente Element através da URL https://element.example.com em seu navegador. Faça login e você será levado ao painel do aplicativo.

Painel de Controle Auto-Hospedado do Element

Conclusão

Isso conclui nosso tutorial sobre a instalação do servidor de chat Matrix Synapse junto com Coturn e o cliente web Element usando o Nginx como servidor proxy. Se você tiver alguma dúvida, poste nos comentários abaixo.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.