-
Matisse DEKEISER authoredMatisse DEKEISER authored
4.1: Installation de Element Web

Choix du serveur web

Tout d'abord, nous devons choisir le serveur web que l'on souhaite installer entre Apache et nginx.
nginx semble être le meilleur choix pour déployer Element Web en raison de sa simplicité, de ses performances optimisées pour le service de fichiers statiques, et de sa faible consommation de ressources. Il est généralement plus adapté à des applications nécessitant un haut débit et une gestion efficace des connexions simultanées.
Cependant, si vous avez des besoins spécifiques en matière de configuration ou de flexibilité (par exemple, gestion avancée des redirections via .htaccess
), Apache pourrait être un bon choix.
En résumé, voici un tableau récapitulatif pour vous aider à choisir :
Critère | nginx | Apache |
---|---|---|
Performance | Très performant, gestion haute charge | Moins performant, surtout en haute charge |
Flexibilité | Moins flexible, mais suffisant pour les fichiers statiques | Très flexible avec modules et .htaccess |
Simplicité | Plus simple à configurer et gérer | Plus complexe à configurer |
Sécurité | Plus sécurisé par défaut | Peut être aussi sécurisé, mais nécessite plus d’attention |
Documentation | Bonne documentation, communauté active | Très large communauté, excellente documentation |
Nous allons donc ici installer nginx.
Nous avons déjà précédemment installé un serveur nginx sur notre machine virtuelle, pour vérifier:
user@matrix $ sudo nginx -version
nginx version: nginx/1.22.1
Si aucun serveur nginx n'est installé (bash: nginx: command not found
), veuillez consulter la procédure 3.1: Mise en place de l'accès au service HTTP sur la VM.

Installer le package element-web

Pour installer le package element-web
, exécutez les commandes suivantes dans le terminal de votre machine virtuelle:
sudo apt install -y wget apt-transport-https
sudo wget -O /usr/share/keyrings/element-io-archive-keyring.gpg https://packages.element.io/debian/element-io-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/element-io-archive-keyring.gpg] https://packages.element.io/debian/ default main" | sudo tee /etc/apt/sources.list.d/element-io.list
sudo apt update
sudo apt install element-web
Maintenant que element-web
est installé, vous devez maintenant rendre accessible le serveur Element Web sur le port 8080 de la machine virtuelle, en reliant element-web
au serveur nginx.
Pour cela, rendez vous dans /etc/element-web
puis modifiez le fichier config.json
avec le contenu suivant:
"default_server_config": {
"m.homeserver": {
"base_url": "http://localhost:8008", # URL du serveur Synapse
"server_name": "localhost"
}
Ensuite, dans /etc/nginx/sites-available
, créez le fichier element
avec le contenu suivant:
server {
listen 8080;
server_name matrix;
root /usr/share/element-web;
index index.html;
location / {
try_files $uri $uri/ =404;
}
# Configuration de la sécurité et des headers
location /_matrix/ {
proxy_pass http://localhost:8008/; # Remplacez par l'adresse de votre service Synapse
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Vous devez maintenant lier le site au dossier sites-enabled
de nginx, en créant un lien symbolique de votre configuration nginx pour Element vers sites-enabled
:
user@matrix $ sudo ln -s /etc/nginx/sites-available/element-web /etc/nginx/sites-enabled/
Vérifiez la configuration de nginx au cas où il y aurait des erreurs:
user@matrix $ sudo nginx -t
Puis redémarrez le service nginx:
user@matrix $ sudo systemctl restart nginx
Désormais, sur le port 8080 de la machine virtuelle, le serveur Element Web est en ligne.
Vous devez désormais ajouter cette ligne à votre config ssh sur la machine hôte, dans la section dédiée à la connection ssh à la machine virtuelle:
LocalForward 0.0.0.0:8080 10.42.154.1:8080
Ainsi, après s'être connecté à la machine virtuelle via ssh, et avoir rentré http://localhost:8080
dans un navigateur web sur votre machine hôte, votre instance d'Element sera disponible.

Plus d'informations sur les outils mentionnés dans cette procédure:

- Page précédente: Sommaire (partie 4)
- Page suivante: Installation d'un reverse proxy