From 47593ed9a88c5a76c1e15833c42bd7d76f458ee1 Mon Sep 17 00:00:00 2001 From: Matias Mennecart <matias.mennecart.etu@univ-lille.fr> Date: Mon, 13 Jan 2025 11:45:19 +0100 Subject: [PATCH] Procedure tp4 partie 1 --- procedures/4-element-proxy/README.md | 2 +- .../4-element-proxy/install-element-web.md | 115 ++++++++++++++++++ 2 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 procedures/4-element-proxy/install-element-web.md diff --git a/procedures/4-element-proxy/README.md b/procedures/4-element-proxy/README.md index a32a071..6d7f886 100644 --- a/procedures/4-element-proxy/README.md +++ b/procedures/4-element-proxy/README.md @@ -8,5 +8,5 @@ <hr> -- Page précédente: [À AJOUTER](./README.md) +- Page précédente: [4.1 Instllation de Element Web](./install-element-web.md) - Page suivante: [À AJOUTER](./README.md) \ No newline at end of file diff --git a/procedures/4-element-proxy/install-element-web.md b/procedures/4-element-proxy/install-element-web.md new file mode 100644 index 0000000..256bfe5 --- /dev/null +++ b/procedures/4-element-proxy/install-element-web.md @@ -0,0 +1,115 @@ +# 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. + + +Normalement vous avez deja installer un server nginx, pour verifier: + +> sudo nginx + +Si aucun serveur nginx n'est installé, consulter [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, executer cette liste de commande: + +``` +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 +``` + + +Désormais, element-web a été installé. +Vous devez maintenant rendre accessible le serveur element-web sur le port 8080 de la vm, en reliant element-web au serveur nginx. + + +Pour cela, rendez vous dans `/etc/element-web` puis modifier le fichier `config.json` : + +```json +"default_server_config": { + "m.homeserver": { + "base_url": "http://localhost:8008", # URL du serveur synapse + "server_name": "localhost" + } +``` + +Ensuite, rendez vous dans `/etc/nginx/sites-available` et crée le fichier `element` : + + +``` +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 s> + 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 aux site-enable: + +`sudo ln -s /etc/nginx/sites-available/element-web /etc/nginx/sites-enabled/` + +Verifier la configuration de nginx: + + +> sudo nginx -t + +Puis redemarrer: + +> sudo systemctl restart nginx + +Désormais, sur le port 8080 de la vm, le serveur element est en ligne + +Vous devez désormais ajouter cette ligne à votre config ssh sur vorte machine, ainsi, en allant sur `localhost:8080` votre serveur element sera disponible. + +``` +LocalForward 8080 10.42.154.1:8080 +``` + + + +- Page précédente: [Sommaire (partie 4)](./README.md) +- Page suivante: [....](./) \ No newline at end of file -- GitLab