# 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](https://httpd.apache.org/) et [nginx](https://nginx.org/). 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: ```bash 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](../3-synapse/http-service-vm.md). ## đŠ Installer le package `element-web` Pour installer le package `element-web`, exĂ©cutez les commandes suivantes dans le terminal de votre machine virtuelle: ```bash 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: ```json "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: ```nginx 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`: ```bash 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: ```bash user@matrix $ sudo nginx -t ``` Puis redĂ©marrez le service nginx: ```bash 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: - [La documentation de nginx](https://nginx.org/en/docs/) <hr> - Page prĂ©cĂ©dente: [Sommaire (partie 4)](README.md) - Page suivante: [Installation d'un reverse proxy](install-reverse-proxy.md)