Ricerca nel sito web

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. È un insieme di server e servizi che comunicano tra loro utilizzando un'API standardizzata che si sincronizza in tempo reale. Utilizza server domestici per archiviare le informazioni sull'account e la cronologia della chat. Se un server domestico non funziona, gli altri server possono continuare la comunicazione senza problemi a causa della natura della decentralizzazione. Puoi utilizzare un server domestico Matrix ospitato da qualcun altro o ospitarne uno tuo per mantenere il controllo sui tuoi dati.

In questo tutorial imparerai come installare e creare un server di chat utilizzando Synapse, un'implementazione home server di Matrix. Element è un client Web Matrix creato utilizzando Matrix React SDK. Ciò ti consentirà di offrire la 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 ad utilizzarlo.

Prerequisiti

    Un server che esegue Ubuntu 22.04.

    Un utente non sudo con privilegi root.

    Il semplice Firewall (UFW) è abilitato e funzionante.

    Nomi di dominio completamente qualificati (FQDN) per Matrix, Element e Coturn che puntano al tuo server. Utilizzeremo matrix.example.com, element.example.com e coturn.example.com rispettivamente per i tre servizi.

    Assicurati che tutto sia aggiornato.

    $ sudo apt update && sudo apt upgrade
    

Passaggio 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)

Passaggio 2: installare Matrix Synapse

Aggiungi la chiave GPG 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 Matrix APT.

$ 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 nome del tuo dominio Matrix al suo posto. Questo fungerà da indirizzo del tuo server di casa.

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

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

Il servizio di Matrix Synapse viene 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.

Passaggio 3: installare e configurare PostgreSQL

Per l'installazione utilizzeremo il repository APT ufficiale di PostgreSQL. Esegui il comando seguente per aggiungere la chiave GPG 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 all'elenco delle fonti.

$ 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

Passaggio 4: installare Nginx

Per l'ambiente di produzione, si consiglia di eseguire il server Synapse utilizzando un proxy Nginx.

Ubuntu 22.04 viene fornito con una versione precedente di Nginx. Per installare la versione più recente, è necessario scaricare il repository ufficiale 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

Verificare l'installazione.

$ nginx -v
nginx version: nginx/1.22.0

Avvia il server Nginx.

$ sudo systemctl start nginx

Passaggio 5: installa SSL

Dobbiamo installare Certbot per generare il certificato SSL. Puoi installare Certbot utilizzando il repository di Ubuntu o prendere la versione più recente 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

Utilizzare il comando seguente per garantire 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 comando seguente per generare un certificato SSL.

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

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

Genera un certificato gruppo Diffie-Hellman.

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

Per verificare se il rinnovo SSL funziona correttamente, esegui un test del processo.

$ sudo certbot renew --dry-run

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

Passaggio 6: configurare Matrix Synapse

È possibile configurare il server Matrix tramite il file /etc/matrix-synapse/homeserver.yaml ma non è consigliabile poiché viene sovrascritto dopo ogni aggiornamento. Per l'utilizzo 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 utente PostgreSQL che hai creato nel passaggio 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 utilizzo elevato della CPU, pertanto è possibile 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.

Riavviare il servizio Synapse per applicare le modifiche.

Crea un nuovo utente matrice. Ti verrà chiesto il nome utente e la 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 al suo interno le seguenti righe.

enable_registration: true

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

registrations_require_3pid:
  - email

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

  # If mail server has no authentication, skip these 2 lines
  smtp_user: '[email '
  smtp_pass: 'password'

  # Optional, require encryption with STARTTLS
  require_transport_security: true

  app_name: 'HowtoForge Example Chat'  # defines value for %(app)s in notif_from and email subject
  notif_from: "%(app)s <[email >"

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.

Riavviare Synapse per applicare la configurazione.

$ sudo systemctl restart matrix-synapse

Passaggio 7: configurare Nginx

Apri il file /etc/nginx/nginx.conf per modificarlo.

$ 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 al suo interno.

# 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 by default only allows file uploads up to 1M in size
            # Increase client_max_body_size to match max_upload_size defined 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 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

Passaggio 8: installare Coturn

Sarà necessario installare un server Traversal Using Relays around NAT (TURN) 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 da allora è stato risolto. Tuttavia, esiste un altro modo per installare Coturn utilizzando un repository non ufficiale. Facoltativamente puoi anche utilizzare Docker per installare Coturn ma non utilizzeremo questo metodo poiché non rientra nell'ambito di questo tutorial.

Aggiungi il repository Coturn non ufficiale.

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

Installa Coturn.

$ sudo apt install coturn

Aprire 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 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 is UDP, no need for TCP
no-tcp-relay

# Do not allow traffic to private IP ranges
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

# Limit number of sessions per user
user-quota=12
# Limit total number of sessions
total-quota=1200

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

Riavviare 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 al suo interno le seguenti righe. Sostituisci il valore turn_shared_secret con il valore di static-auth-secret dal file \etc\turnserver.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.

Riavviare Synapse per applicare le modifiche.

$ sudo systemctl restart matrix-synapse

Passaggio 9: matrice di accesso

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

Fai clic sul link Modifica sotto Homeserver. Inserisci matrix.example.com come server di casa.

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

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

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

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

Inserisci nuovamente la frase e fai clic su Continua per procedere.

Ti verrà fornito un set di chiavi di sicurezza che potrai utilizzare se dimentichi la frase di sicurezza. Fai clic sul pulsante Scarica per salvarli.

Fai clic sul pulsante Continua per procedere.

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

Abbiamo creato una chat room di gruppo denominata Howtoforge come mostrato sopra.

Passaggio 10: installare l'elemento

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 acquisire l'ultima versione di Element.

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

Aggiungi le seguenti righe.

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

Passaggio 11: configurazione dell'elemento

Copia lo stesso file di configurazione dell'elemento.

$ 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 del server home Matrix predefinito nel tuo server home e rimuovi la variabile nome_server.

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

Se desideri utilizzare il tuo nome anziché Element nel titolo del sito web, modifica il nome del marchio.

"brand": "Howtoforge Example Chat",

Imposta la variabile disable_guests su true per impedire 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 al suo interno le seguenti righe.

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 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. Accedi e verrai indirizzato alla dashboard dell'app.

Conclusione

Questo conclude il nostro tutorial sull'installazione del server Matrix Synapse Chat insieme al client web Coturn ed Element utilizzando Nginx come server proxy. Se avete domande, pubblicatele nei commenti qui sotto.

Articoli correlati: