Serveur de chat · 16 min read · Nov 01, 2025

Comment installer et créer un serveur de chat utilisant Matrix Synapse et Element sur Ubuntu 22.04

Matrix est une norme ouverte pour la communication décentralisée et chiffrée de bout en bout. C’est un ensemble de serveurs et de services qui communiquent entre eux en utilisant une API standardisée qui se synchronise en temps réel. Il utilise des serveurs domestiques pour stocker les informations de compte et l’historique des discussions. Si un serveur domestique tombe en panne, d’autres serveurs peuvent continuer la communication sans problèmes en raison de la nature de la décentralisation. Vous pouvez utiliser un serveur domestique Matrix hébergé par quelqu’un d’autre ou héberger le vôtre pour maintenir le contrôle de vos données.

Dans ce tutoriel, vous apprendrez comment installer et créer un serveur de chat en utilisant Synapse, une implémentation de serveur domestique de Matrix. Element est un client web Matrix construit en utilisant le Matrix React SDK. Cela vous permettra d’offrir un chat Matrix sur le web. Vous pouvez également utiliser le serveur avec tout autre client Matrix de votre choix. Nous allons également installer le serveur Coturn pour activer les appels vocaux et vidéo. Le service Coturn est optionnel si vous n’êtes pas intéressé à l’utiliser.

Prérequis

  1. Un serveur exécutant Ubuntu 22.04.
  2. Un utilisateur non-sudo avec des privilèges root.
  3. Le pare-feu uncomplicated (UFW) est activé et en cours d’exécution.
  4. Noms de domaine pleinement qualifiés (FQDN) pour Matrix, Element et Coturn pointant vers votre serveur. Nous utiliserons respectivement matrix.example.com, element.example.com et coturn.example.com pour les trois services.
  5. Assurez-vous que tout est à jour. $ sudo apt update && sudo apt upgrade

Étape 1 - Configurer le pare-feu

Avant d’installer des paquets, la première étape consiste à configurer le pare-feu pour ouvrir les ports pour HTTP, HTTPS et Synapse.

Vérifiez l’état du pare-feu.

$ sudo ufw status

Vous devriez voir quelque chose comme ce qui suit.

Status: active

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

Ouvrez les ports HTTP, HTTPS et Synapse dans le pare-feu.

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

Vérifiez à nouveau l’état pour confirmer.

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

Étape 2 - Installer Matrix Synapse

Ajoutez la clé GPG de Matrix.

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

Ajoutez le dépôt APT de 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

Mettez à jour la liste des dépôts du système.

$ sudo apt update

Installez Matrix Synapse.

$ sudo apt install matrix-synapse-py3

Au cours de l’installation, on vous demandera le nom du serveur, qui fait partie de votre ID Matrix. Entrez votre nom de domaine Matrix à la place. Cela agira comme votre adresse de serveur domestique.

On vous demandera également si vous souhaitez ou non envoyer des statistiques anonymisées sur votre serveur domestique à Matrix. Tapez N pour refuser.

Vous pouvez modifier ces paramètres plus tard dans le fichier /etc/matrix-synapse/conf.d/server_name.yaml.

Le service Matrix Synapse est activé et démarré lors de l’installation. Vérifiez l’état du service.

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

Étape 3 - Installer et configurer PostgreSQL

Nous allons utiliser le dépôt APT officiel de PostgreSQL pour installer. Exécutez la commande suivante pour ajouter la clé GPG de PostgreSQL.

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

Ajoutez le dépôt APT à votre liste de sources.

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

Mettez à jour le dépôt du système.

$ sudo apt update

Maintenant, vous pouvez installer PostgreSQL en utilisant la commande suivante.

$ sudo apt install postgresql postgresql-contrib

Vérifiez l’état du service 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.

Vous pouvez voir que le service est activé et en cours d’exécution par défaut.

Connectez-vous au compte système postgres.

$ sudo -su postgres

Créez un nouvel utilisateur de base de données et une base de données pour PostgreSQL.

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

Quittez le compte postgres.

$ exit

Étape 4 - Installer Nginx

Pour l’environnement de production, il est recommandé d’exécuter le serveur Synapse en utilisant un proxy Nginx.

Ubuntu 22.04 est livré avec une version plus ancienne de Nginx. Pour installer la dernière version, vous devez télécharger le dépôt officiel de Nginx.

Importez la clé de signature de Nginx.

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

Ajoutez le dépôt pour la version stable de 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

Mettez à jour les dépôts du système.

$ sudo apt update

Installez Nginx.

$ sudo apt install nginx

Vérifiez l’installation.

$ nginx -v
nginx version: nginx/1.22.0

Démarrez le serveur Nginx.

$ sudo systemctl start nginx

Étape 5 - Installer SSL

Nous devons installer Certbot pour générer le certificat SSL. Vous pouvez soit installer Certbot en utilisant le dépôt d’Ubuntu, soit obtenir la dernière version en utilisant l’outil Snapd. Nous allons utiliser la version Snapd.

Ubuntu 22.04 est livré avec Snapd installé par défaut. Exécutez les commandes suivantes pour vous assurer que votre version de Snapd est à jour.

$ sudo snap install core
$ sudo snap refresh core

Installez Certbot.

$ sudo snap install --classic certbot

Utilisez la commande suivante pour vous assurer que la commande Certbot peut être exécutée en créant un lien symbolique vers le répertoire /usr/bin.

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

Exécutez la commande suivante pour générer un certificat SSL.

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

La commande ci-dessus téléchargera un certificat dans le répertoire /etc/letsencrypt/live/matrix.example.com sur votre serveur.

Générez un certificat de groupe Diffie-Hellman.

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

Pour vérifier si le renouvellement SSL fonctionne correctement, effectuez un essai à blanc du processus.

$ sudo certbot renew --dry-run

Si vous ne voyez aucune erreur, vous êtes prêt. Votre certificat se renouvellera automatiquement.

Étape 6 - Configurer Matrix Synapse

Vous pouvez configurer le serveur Matrix via le fichier /etc/matrix-synapse/homeserver.yaml, mais ce n’est pas recommandé car il est écrasé après chaque mise à jour. Pour une utilisation en production, vous devez placer les fichiers de configuration dans le dossier /etc/matrix-synapse/conf.d.

L’installation de Synapse a créé deux fichiers de configuration dans le dossier /etc/matrix-synapse/conf.d.

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

Créez un nouveau fichier de configuration pour la base de données et ouvrez-le pour l’édition.

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

Collez les lignes suivantes dans l’éditeur. Remplacez le champ your-password par le mot de passe de l’utilisateur PostgreSQL que vous avez créé à l’étape 3. Remplacez localhost par l’adresse IP de votre serveur, si vous hébergez la base de données ailleurs.

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

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Créez une clé de partage d’enregistrement secrète. La clé doit être sécurisée car elle permettra à quiconque de s’inscrire en tant que nouvel utilisateur, même si l’inscription est désactivée.

$ 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

Par défaut, Synapse active les indicateurs de présence qui montrent si une personne est en ligne. Cela peut entraîner une utilisation élevée du CPU, vous pouvez donc le désactiver. Créez un nouveau fichier de configuration pour cela.

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

Collez la ligne suivante dans l’éditeur.

presence:
  enabled: false

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Redémarrez le service Synapse pour appliquer les modifications.

Créez un nouvel utilisateur matrix. On vous demandera votre nom d’utilisateur et votre mot de passe. Puisqu’il s’agit du premier utilisateur que nous créons, tapez yes lorsqu’on vous demande si vous souhaitez faire de l’utilisateur un administrateur.

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

Si vous souhaitez ouvrir l’inscription publique, créez un nouveau fichier de configuration.

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

Collez les lignes suivantes dedans.

enable_registration: true

Par défaut, Synapse n’autorise pas les inscriptions sans vérification par e-mail. Pour activer la vérification par e-mail, collez les lignes suivantes.

registrations_require_3pid:
  - email

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

  # Si le serveur de messagerie n'a pas d'authentification, sautez ces 2 lignes
  smtp_user: '[email protected]'
  smtp_pass: 'password'

  # Optionnel, nécessite le chiffrement avec STARTTLS
  require_transport_security: true

  app_name: 'HowtoForge Example Chat'  # définit la valeur pour %(app)s dans notif_from et le sujet de l'e-mail
  notif_from: "%(app)s <[email protected]>"

Pour désactiver la vérification par e-mail, collez la ligne suivante à la place.

enable_registration_without_verification: true

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Redémarrez Synapse pour appliquer la configuration.

$ sudo systemctl restart matrix-synapse

Étape 7 - Configurer Nginx

Ouvrez le fichier /etc/nginx/nginx.conf pour l’édition.

$ sudo nano /etc/nginx/nginx.conf

Ajoutez la ligne suivante avant la ligne include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Créez et ouvrez le fichier /etc/nginx/conf.d/synapse.conf pour l’édition.

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

Collez le code suivant dedans.

# 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 par défaut n'autorise que les téléchargements de fichiers jusqu'à 1M en taille
            # Augmentez client_max_body_size pour correspondre à max_upload_size défini dans homeserver.yaml
            client_max_body_size 50M;
    }
}

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité une fois terminé.

Vérifiez la syntaxe du fichier de configuration 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

Redémarrez le service Nginx.

$ sudo systemctl restart nginx

Étape 8 - Installer Coturn

Vous aurez besoin d’installer un serveur Traversal Using Relays around NAT (TURN) pour activer les appels vocaux et vidéo. Pour cela, nous allons installer le paquet Coturn. Si vous n’avez pas besoin de cette fonctionnalité, vous pouvez sauter cette étape.

Ubuntu 22.04 ne livre pas le paquet Coturn en raison d’un problème de bogue qui a été résolu depuis. Cependant, il existe une autre façon d’installer Coturn en utilisant un dépôt non officiel. En option, vous pouvez également utiliser Docker pour installer Coturn, mais nous n’utiliserons pas cette méthode car elle est hors du champ de ce tutoriel.

Ajoutez le dépôt non officiel de Coturn.

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

Installez Coturn.

$ sudo apt install coturn

Ouvrez les ports TURN et UDP.

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

Générez un certificat SSL pour Turn ( turn.example.com).

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

Générez un secret d’authentification et enregistrez-le dans le fichier de configuration.

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

Ouvrez le fichier de configuration pour l’édition.

$ sudo nano /etc/turnserver.conf

Collez les lignes suivantes en dessous du secret d’authentification.

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 est UDP, pas besoin de TCP
no-tcp-relay

# Ne pas autoriser le trafic vers les plages d'IP privées
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
defined-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

# Limiter le nombre de sessions par utilisateur
user-quota=12
# Limiter le nombre total de sessions
total-quota=1200

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Redémarrez Coturn pour appliquer la configuration.

$ sudo systemctl restart coturn

Créez un nouveau fichier de configuration Synapse pour Coturn.

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

Collez les lignes suivantes dedans. Remplacez la valeur turn_shared_secret par la valeur de static-auth-secret du fichier eturnserver.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

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Redémarrez Synapse pour appliquer les modifications.

$ sudo systemctl restart matrix-synapse

Étape 9 - Accéder à Matrix

Vous pouvez accéder à Matrix Chat en utilisant le client web d’Element à https://app.element.io. Cliquez sur le bouton Se connecter pour continuer.

Page de connexion Web d'Element

Cliquez sur le lien Modifier sous Serveur domestique. Entrez matrix.example.com comme votre serveur domestique.

Client Element Serveur domestique personnalisé

Si le client détecte correctement votre serveur domestique, la bordure et le texte deviendront verts, sinon ils seront affichés en rouge. Cliquez sur Continuer pour procéder.

Connexion au serveur domestique personnalisé d'Element

Cliquez sur le bouton Se connecter pour vous connecter. On vous demandera de créer une sauvegarde sécurisée et chiffrée.

Sauvegarde sécurisée Matrix

Sélectionnez l’option Entrer une phrase de sécurité pour créer une phrase de sécurité qui sera requise chaque fois que vous vous connectez. Cliquez sur Continuer pour procéder.

Phrase de sécurité d'Element

Entrez une phrase de sécurité et cliquez sur le bouton Continuer pour procéder. On vous demandera de la confirmer à nouveau à l’écran suivant.

Confirmer la phrase de sécurité d'Element

Entrez à nouveau la phrase et cliquez sur Continuer pour procéder.

Popup de clé de sécurité d'Element

Vous recevrez un ensemble de clés de sécurité que vous pouvez utiliser si vous oubliez votre phrase de sécurité. Cliquez sur le bouton Télécharger pour les enregistrer.

Cliquez sur le bouton Continuer pour procéder.

Vérification du mot de passe d'Element

On vous demandera votre mot de passe de compte. Entrez le mot de passe et cliquez sur le bouton Continuer pour terminer la configuration de la sauvegarde chiffrée.

Tableau de bord du client Web d'Element

Nous avons créé une salle de chat de groupe nommée Howtoforge comme montré ci-dessus.

Étape 10 - Installer Element

Installez le paquet jq pour installer le processeur de texte JSON.

$ sudo apt install jq

Créez un répertoire pour Element.

$ sudo mkdir -p /var/www/element

Créez un nouveau fichier pour récupérer la dernière version d’Element.

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

Ajoutez les lignes suivantes dedans.

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

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Rendez le fichier exécutable.

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

Exécutez le script pour télécharger Element.

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

Étape 11 - Configurer Element

Copiez le même fichier de configuration d’Element.

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

Ouvrez le fichier de configuration pour l’édition.

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

Trouvez les lignes suivantes.

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

Changez l’adresse du serveur domestique Matrix par défaut par votre serveur domestique et supprimez la variable server_name.

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

Si vous souhaitez utiliser votre propre nom au lieu d’Element dans le titre du site web, changez le nom de la marque.

"brand": "Howtoforge Example Chat",

Définissez la variable disable_guests sur true pour interdire aux invités d’utiliser Element.

"disable_guests": true,

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Générez un certificat SSL pour le client Element.

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

Créez et ouvrez le fichier /etc/nginx/conf.d/element.conf pour l’édition.

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

Collez les lignes suivantes dedans.

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;
}

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Vérifiez la syntaxe du fichier de configuration 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

Redémarrez le service Nginx.

$ sudo systemctl restart nginx

Vous pouvez accéder au client Element via l’URL https://element.example.com dans votre navigateur. Connectez-vous et vous serez dirigé vers le tableau de bord de l’application.

Tableau de bord auto-hébergé d'Element

Conclusion

Cela conclut notre tutoriel sur l’installation du serveur de chat Matrix Synapse ainsi que de Coturn et du client web Element en utilisant Nginx comme serveur proxy. Si vous avez des questions, postez-les dans les commentaires ci-dessous.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.