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.