Installazione Server · 15 min read · Nov 01, 2025

Come installare e creare un server di chat utilizzando Matrix Synapse ed Element su Ubuntu 22.04

Matrix è uno standard aperto per la comunicazione decentralizzata e crittografata end-to-end. È una raccolta di server e servizi che comunicano tra loro utilizzando un’API standardizzata che si sincronizza in tempo reale. Utilizza home server per memorizzare le informazioni sugli account e la cronologia delle chat. Se un home server si guasta, altri server possono continuare la comunicazione senza problemi grazie alla natura della decentralizzazione. Puoi utilizzare un home server Matrix ospitato da qualcun altro o ospitare il tuo per mantenere il controllo sui tuoi dati.

In questo tutorial, imparerai come installare e creare un server di chat utilizzando Synapse, un’implementazione di home server di Matrix. Element è un client web Matrix costruito utilizzando Matrix React SDK. Questo ti permetterà di offrire chat Matrix sul web. Puoi anche utilizzare il server con qualsiasi altro client Matrix di tua scelta. Installeremo anche il server Coturn per abilitare le chiamate vocali e video. Il servizio Coturn è facoltativo se non sei interessato a utilizzarlo.

Prerequisiti

  1. Un server che esegue Ubuntu 22.04.
  2. Un utente non sudo con privilegi di root.
  3. Il Firewall non complicato (UFW) è abilitato e in esecuzione.
  4. Nomi di dominio completamente qualificati (FQDN) per Matrix, Element e Coturn che puntano al tuo server. Utilizzeremo rispettivamente matrix.example.com, element.example.com e coturn.example.com per i tre servizi.
  5. Assicurati che tutto sia aggiornato. $ sudo apt update && sudo apt upgrade

Passo 1 - Configurare il Firewall

Prima di installare qualsiasi pacchetto, il primo passo è configurare il firewall per aprire le porte per HTTP, HTTPS e Synapse.

Controlla lo stato del firewall.

$ sudo ufw status

Dovresti vedere qualcosa di simile al seguente.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Apri le porte HTTP, HTTPS e Synapse nel firewall.

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

Controlla di nuovo lo stato per confermare.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
8448                       ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443                        ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
8448 (v6)                  ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
443 (v6)                   ALLOW       Anywhere (v6)

Passo 2 - Installare Matrix Synapse

Aggiungi la chiave GPG di Matrix.

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

Aggiungi il repository APT di 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

Aggiorna l’elenco dei repository di sistema.

$ sudo apt update

Installa Matrix Synapse.

$ sudo apt install matrix-synapse-py3

Durante l’installazione, ti verrà chiesto il nome del server, che fa parte del tuo ID Matrix. Inserisci il tuo nome di dominio Matrix al suo posto. Questo fungerà da indirizzo del tuo homeserver.

Ti verrà anche chiesto se desideri inviare o meno statistiche anonime sul tuo homeserver a Matrix. Digita N per rifiutare.

Puoi modificare queste impostazioni in seguito nel file /etc/matrix-synapse/conf.d/server_name.yaml.

Il servizio Matrix Synapse è abilitato e avviato durante l’installazione. Controlla lo stato del servizio.

$ 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 - Installare e configurare PostgreSQL

Utilizzeremo il repository APT ufficiale di PostgreSQL per installare. Esegui il seguente comando per aggiungere la chiave GPG di PostgreSQL.

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

Aggiungi il repository APT alla tua lista di sorgenti.

$ 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'

Aggiorna il repository di sistema.

$ sudo apt update

Ora puoi installare PostgreSQL utilizzando il seguente comando.

$ sudo apt install postgresql postgresql-contrib

Controlla lo stato del servizio 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.

Puoi vedere che il servizio è abilitato e in esecuzione per impostazione predefinita.

Accedi all’account di sistema postgres.

$ sudo -su postgres

Crea un nuovo utente del database e un database per PostgreSQL.

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

Esci dall’account postgres.

$ exit

Passo 4 - Installare Nginx

Per l’ambiente di produzione, è consigliato eseguire il server Synapse utilizzando un proxy Nginx.

Ubuntu 22.04 viene fornito con una versione più vecchia di Nginx. Per installare l’ultima versione, devi scaricare il repository ufficiale di Nginx.

Importa la chiave di firma di Nginx.

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

Aggiungi il repository per la versione stabile di 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

Aggiorna i repository di sistema.

$ sudo apt update

Installa Nginx.

$ sudo apt install nginx

Verifica l’installazione.

$ nginx -v
nginx version: nginx/1.22.0

Avvia il server Nginx.

$ sudo systemctl start nginx

Passo 5 - Installare SSL

Dobbiamo installare Certbot per generare il certificato SSL. Puoi installare Certbot utilizzando il repository di Ubuntu o ottenere l’ultima versione utilizzando lo strumento Snapd. Utilizzeremo la versione Snapd.

Ubuntu 22.04 viene fornito con Snapd installato per impostazione predefinita. Esegui i seguenti comandi per assicurarti che la tua versione di Snapd sia aggiornata.

$ sudo snap install core
$ sudo snap refresh core

Installa Certbot.

$ sudo snap install --classic certbot

Usa il seguente comando per assicurarti che il comando Certbot possa essere eseguito creando un collegamento simbolico alla directory /usr/bin.

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

Esegui il seguente comando per generare un certificato SSL.

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

Il comando sopra scaricherà un certificato nella directory /etc/letsencrypt/live/matrix.example.com sul tuo server.

Genera un certificato Diffie-Hellman group.

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

Per controllare se il rinnovo SSL funziona correttamente, esegui una prova del processo.

$ sudo certbot renew --dry-run

Se non vedi errori, sei a posto. Il tuo certificato si rinnoverà automaticamente.

Passo 6 - Configurare Matrix Synapse

Puoi configurare il server Matrix tramite il file /etc/matrix-synapse/homeserver.yaml, ma non è consigliato poiché viene sovrascritto dopo ogni aggiornamento. Per l’uso in produzione, dovresti posizionare i file di configurazione nella cartella /etc/matrix-synapse/conf.d.

L’installazione di Synapse ha creato due file di configurazione nella cartella /etc/matrix-synapse/conf.d.

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

Crea un nuovo file di configurazione per il database e aprilo per la modifica.

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

Incolla le seguenti righe nell’editor. Sostituisci il campo your-password con la password dell’utente PostgreSQL che hai creato nel passo 3. Sostituisci localhost con l’indirizzo IP del tuo server, se stai ospitando il database altrove.

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

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Crea una chiave di registrazione segreta. La chiave dovrebbe essere protetta perché consentirà a chiunque di registrare un nuovo utente, anche se la registrazione è disabilitata.

$ 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

Per impostazione predefinita, Synapse abilita gli indicatori di presenza che mostrano se una persona è online. Può causare un alto utilizzo della CPU, quindi puoi disabilitarlo. Crea un nuovo file di configurazione per lo stesso.

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

Incolla la seguente riga nell’editor.

presence:
  enabled: false

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Riavvia il servizio Synapse per applicare le modifiche.

Crea un nuovo utente matrix. Ti verrà chiesto il tuo nome utente e la tua password. Poiché questo è il primo utente che stiamo creando, digita yes quando ti viene chiesto se rendere l’utente un amministratore.

$ register_new_matrix_user -c /etc/matrix-synapse/conf.d/registration_shared_secret.yaml http://localhost:8008
New user localpart [navjot]: navjot
Password: 
Confirm password: 
Make admin [no]: yes
Sending registration request...
Success!

Se desideri aprire la registrazione pubblica, crea un nuovo file di configurazione.

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

Incolla le seguenti righe in esso.

enable_registration: true

Per impostazione predefinita, Synapse non consente registrazioni senza verifica email. Per abilitare la verifica email, incolla le seguenti righe.

registrations_require_3pid:
  - email

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

  # Se il server di posta non ha autenticazione, salta queste 2 righe
  smtp_user: '[email protected]'
  smtp_pass: 'password'

  # Facoltativo, richiedere crittografia con STARTTLS
  require_transport_security: true

  app_name: 'HowtoForge Example Chat'  # definisce il valore per %(app)s in notif_from e oggetto email
  notif_from: "%(app)s <[email protected]>"

Per disabilitare la verifica email, incolla invece la seguente riga.

enable_registration_without_verification: true

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Riavvia Synapse per applicare la configurazione.

$ sudo systemctl restart matrix-synapse

Passo 7 - Configurare Nginx

Apri il file /etc/nginx/nginx.conf per la modifica.

$ sudo nano /etc/nginx/nginx.conf

Aggiungi la seguente riga prima della riga include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Crea e apri il file /etc/nginx/conf.d/synapse.conf per la modifica.

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

Incolla il seguente codice in esso.

# enforce HTTPS
server {
    # Client port
    listen 80;
    listen [::]:80;
    server_name matrix.example.com;
    return 301 https://$host$request_uri;
}

server {
    server_name matrix.example.com;

    # Client port
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    # Federation port
    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;

    # TLS configuration
    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;

            # Nginx per impostazione predefinita consente solo caricamenti di file fino a 1M di dimensione
            # Aumenta client_max_body_size per corrispondere a max_upload_size definito in homeserver.yaml
            client_max_body_size 50M;
    }
}

Salva il file premendo Ctrl + X e inserendo Y quando richiesto una volta terminato.

Verifica la sintassi del file di configurazione di Nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Riavvia il servizio Nginx.

$ sudo systemctl restart nginx

Passo 8 - Installare Coturn

Dovrai installare un server TURN (Traversal Using Relays around NAT) per abilitare le chiamate vocali e video. A questo scopo, installeremo il pacchetto Coturn. Se non hai bisogno di questa funzionalità, puoi saltare questo passaggio.

Ubuntu 22.04 non viene fornito con il pacchetto Coturn a causa di un problema di bug che è stato risolto. Tuttavia, c’è un altro modo per installare Coturn utilizzando un repository non ufficiale. Facoltativamente puoi anche usare Docker per installare Coturn, ma non utilizzeremo quel metodo poiché è al di fuori dello scopo di questo tutorial.

Aggiungi il repository non ufficiale di Coturn.

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

Installa Coturn.

$ sudo apt install coturn

Apri le porte TURN e UDP.

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

Genera un certificato SSL per Turn ( turn.example.com).

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

Genera un segreto di autenticazione e salvalo nel file di configurazione.

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

Apri il file di configurazione per la modifica.

$ sudo nano /etc/turnserver.conf

Incolla le seguenti righe in esso sotto il segreto di autenticazione.

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, non è necessario TCP
no-tcp-relay

# Non consentire traffico a intervalli IP privati
no-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
denied-peer-ip=::ffff:0.0.0.0-::ffff:255.255.255.255
denied-peer-ip=100::-100::ffff:ffff:ffff:ffff
denied-peer-ip=2001::-2001:1ff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=2002::-2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff

# Limita il numero di sessioni per utente
user-quota=12
# Limita il numero totale di sessioni
total-quota=1200

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Riavvia Coturn per applicare la configurazione.

$ sudo systemctl restart coturn

Crea un nuovo file di configurazione Synapse per Coturn.

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

Incolla le seguenti righe in esso. Sostituisci il valore turn_shared_secret con il valore di static-auth-secret dal file et 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

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Riavvia Synapse per applicare le modifiche.

$ sudo systemctl restart matrix-synapse

Passo 9 - Accedere a Matrix

Puoi accedere a Matrix Chat utilizzando il client web di Element all’indirizzo https://app.element.io. Fai clic sul pulsante Accedi per procedere.

Pagina di accesso Element Web

Fai clic sul link Modifica sotto Homeserver. Inserisci matrix.example.com come tuo homeserver.

Client Element Homeserver personalizzato

Se il client rileva correttamente il tuo homeserver, il confine e il testo diventeranno di colore verde, altrimenti verrà mostrato in rosso. Fai clic su Continua per procedere.

Accesso Homeserver personalizzato Element

Fai clic sul pulsante Accedi per effettuare il login. Ti verrà chiesto di creare un backup sicuro e crittografato.

Backup sicuro Matrix

Seleziona l’opzione Inserisci una frase di sicurezza per creare una frase di sicurezza che sarà richiesta ogni volta che accedi. Fai clic su Continua per procedere.

Frase di sicurezza Element

Inserisci una frase di sicurezza e fai clic sul pulsante Continua per procedere. Ti verrà chiesto di confermarla di nuovo nella schermata successiva.

Conferma frase di sicurezza Element

Inserisci di nuovo la frase e fai clic su Continua per procedere.

Popup chiave di sicurezza Element

Ti verrà fornito un insieme di chiavi di sicurezza che puoi utilizzare se dimentichi la tua frase di sicurezza. Fai clic sul pulsante Scarica per salvarle.

Fai clic sul pulsante Continua per procedere.

Verifica password Element

Ti verrà chiesta la password del tuo account. Inserisci la password e fai clic sul pulsante Continua per completare la configurazione del backup crittografato.

Dashboard client web Element

Abbiamo creato una stanza di chat di gruppo chiamata Howtoforge come mostrato sopra.

Passo 10 - Installare Element

Installa il pacchetto jq per installare il processore di testo JSON.

$ sudo apt install jq

Crea una directory per Element.

$ sudo mkdir -p /var/www/element

Crea un nuovo file per ottenere l’ultima versione di Element.

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

Aggiungi le seguenti righe in esso.

#!/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"

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Rendi il file eseguibile.

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

Esegui lo script per scaricare Element.

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

Passo 11 - Configurare Element

Copia lo stesso file di configurazione di Element.

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

Apri il file di configurazione per la modifica.

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

Trova le seguenti righe.

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

Cambia l’indirizzo dell’homeserver Matrix predefinito con il tuo homeserver e rimuovi la variabile server_name.

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

Se desideri utilizzare il tuo nome invece di Element nel titolo del sito web, cambia il nome del marchio.

"brand": "Howtoforge Example Chat",

Imposta la variabile disable_guests su true per vietare agli ospiti di utilizzare Element.

"disable_guests": true,

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Genera un certificato SSL per il client Element.

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

Crea e apri il file /etc/nginx/conf.d/element.conf per la modifica.

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

Incolla le seguenti righe in esso.

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;

    # TLS configuration
    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;
}

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Verifica la sintassi del file di configurazione di Nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Riavvia il servizio Nginx.

$ sudo systemctl restart nginx

Puoi accedere al client Element tramite l’URL https://element.example.com nel tuo browser. Effettua il login e verrai portato alla dashboard dell’app.

Dashboard self-hosted di Element

Conclusione

Questo conclude il nostro tutorial sull’installazione del server di chat Matrix Synapse insieme a Coturn e al client web Element utilizzando Nginx come server proxy. Se hai domande, postale nei commenti qui sotto.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.