Skip to content
Snippets Groups Projects
Commit 4d7862a4 authored by Matisse DEKEISER's avatar Matisse DEKEISER
Browse files

Ajouts, corrections et modifications dans les procédures des parties 3 et 4 (revproxy à finir)

parent 6626e5fb
Branches
No related tags found
No related merge requests found
......@@ -45,4 +45,5 @@ Afin de procéder à une installation correcte de Synapse, l'ensemble des procé
### [Sommaire](./procedures/4-element-proxy/README.md)
- À FAIRE
\ No newline at end of file
- [4.1: Installation de Element Web](./procedures/4-element-proxy/install-element-web.md)
- [4.2: Installation d'un reverse proxy](./procedures/4-element-proxy/install-reverse-proxy.md)
\ No newline at end of file
......@@ -11,4 +11,4 @@
<hr>
- Page précédente: [Installer PostgreSQL pour la gestion des utilisateurs/identifiants](../2-configuration-services/postgresql.md)
- Page suivante: [À AJOUTER](./README.md)
- Page suivante: [Mise en place de l'accès au service HTTP sur la VM](./http-service-vm.md)
# 3.1 : Mise en place de l'accès au service HTTP sur la VM
# 3.1: Mise en place de l'accès au service HTTP sur la VM
Afin que le service que nous allons installer soit accessible depuis l’ensemble des machines du TP à l’IUT, nous devons configurer notre serveur pour qu’il puisse écouter sur les interfaces réseau de la machine physique.
Afin que le service que nous allons installer soit accessible depuis l’ensemble des machines de TP à l’IUT, nous devons configurer notre serveur pour qu’il puisse écouter sur les interfaces réseau de la machine physique.
Dans cette section, nous allons installer et configurer les services nécessaires sur une machine virtuelle. Notez que le réseau virtuel principal dans lequel se trouve la VM est uniquement accessible depuis la machine de virtualisation.
......@@ -69,52 +69,56 @@ Nous allons maintenant configurer l’accès au service nginx depuis la machine
Pour contourner ces limitations, nous utiliserons un *tunnel SSH*. Cette méthode permet de rediriger le trafic local d’un port sur la machine physique vers un port distant sur la VM.
#### Configuration de nginx
### ⌨️ Configuration de nginx
Sur la VM, ouvrez le fichier de configuration de nginx avec le logiciel nano :
Sur la VM, ouvrez le fichier de configuration de nginx avec le logiciel `nano`:
```bash
user@matrix $ sudo nano /etc/nginx/sites-available/default
```
Apportez les modifications suivantes pour permettre à nginx d’écouter sur toutes les interfaces réseau de la VM :
Apportez les modifications suivantes pour permettre à nginx d’écouter sur toutes les interfaces réseau de la VM:
```
À Compléter
à compléter
```
Redémarrez nginx pour appliquer les changements :
Redémarrez nginx pour appliquer les changements:
```bash
user@matrix $ sudo systemctl restart nginx
```
#### Configuration du tunnel SSH
### 🕳️ Configuration du tunnel SSH
Sur votre machine physique, configurez votre client SSH pour établir un tunnel avec le logiciel nano :
Sur votre machine physique, configurez votre client SSH pour établir un tunnel avec le logiciel `nano`:
```bash
user@phys $ nano ~/.ssh/config
```
Ajoutez les lignes suivantes (remplacez `À Compléter` par vos informations spécifiques, comme l’adresse IP ou le nom d’hôte de la VM) :
Dans votre configuration permettant la connexion à la machine virtuelle, rajoutez la ligne `LocalForward`:
```bash
À Compléter
Host vm
Hostname 10.42.x.1
User user
ProxyJump virt
LocalForward 8080 localhost:8080
```
Enregistrez et quittez. Ensuite, établissez le tunnel avec :
Enregistrez et quittez. Ensuite, établissez le tunnel SSH en vous connectant à la machine virtuelle:
```bash
user@phys $ ssh [nom de la VM]
user@phys $ ssh vm
```
Vous pouvez maintenant accéder au serveur nginx de la VM via `http://localhost:8080` sur votre machine physique.
<hr>
### 📚 Ressources complémentaires
- [Documentation de SSH](https://man7.org/linux/man-pages/man1/ssh.1.html)
### 📚 Plus d'informations sur les outils mentionnés dans cette procédure:
- [La documentation de OpenSSH par OpenBSD](https://www.openssh.com/manual.html)
- [Site officiel de nginx](https://nginx.org/)
<hr>
......
# 3.2 : Installation et configuration de Matrix
# 3.2: Installation et configuration de Matrix
Maintenant que notre service HTTP est configuré, il est temps d'installer `Synapse`.
Synapse est un serveur de communication instantanée open source qui fonctionne avec le protocole Matrix. Il permet aux utilisateurs de communiquer via des conversations texte, des appels audio et vidéo, ainsi que des partages de fichiers.
Synapse est un serveur de communication instantanée open-source qui fonctionne à l'aide du protocole Matrix. Il permet aux utilisateurs de communiquer via des conversations texte, des appels audio et vidéo, ainsi que des partages de fichiers.
<hr>
## 🖥️ Installation de Synapse sous Debian
Pour installer Synapse sur notre machine virtuelle, il suffit de copier cette ensemble de commande fournies par le site officiel de [Matrix](https://packages.matrix.org/debian/).
Pour installer Synapse sur notre machine virtuelle, il suffit de copier cet ensemble de commandes fournies par le site officiel de [Matrix](https://packages.matrix.org/debian/).
```bash
sudo apt install -y lsb-release wget apt-transport-https
sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
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
sudo apt update
sudo apt install matrix-synapse-py3
```
Durant l'installation, le gestionnaire de paquets nous demande le nom de notre instance. Nous devons indiquer `machine-physique.iutinfo.fr:8008`. Attention à bien indiquer le port `8008` et à remplacer `machine-physique` par le *nom de votre machine physique* (par exemple ayou03).
Le serveur écrira ses messages à destination de l’administrateur (les logs) dans le fichier /var/log/matrix-synapse/homeserver.log.
Le serveur écrira ses messages à destination de l’administrateur (les logs) dans le fichier `/var/log/matrix-synapse/homeserver.log`.
## ⚙️ Paramétrer l’accès à distance
Il est important de noter que, par défaut, synapse écoute uniquement les interfaces de boucle locale. Nous devons alors lui permettre d'accéder depuis l'extérieur de la machine virtuelle en lui faisant écouter l'interface située dans notre réseau 10.42.0.0/16.
Il est important de noter que, par défaut, Synapse n'écoute uniquement les interfaces de boucle locale. Nous devons alors lui permettre d'accéder depuis l'extérieur de la machine virtuelle en lui faisant écouter l'interface située dans notre réseau 10.42.0.0/16.
Il vous suffit alors de modifier la configuration de synapse afin qu'il écoute sur l'interface réseau attaché à notre réseau 10.42.0.0/16 en supplément de la boucle locale.
......@@ -34,59 +37,71 @@ Allez dans le fichier :
nano /etc/matrix-synapse/homeserver.yaml
```
```bash
```yaml
pid_file: "/var/run/matrix-synapse.pid"
listeners:
- port: 8008
tls: false
type: http
x_forwarded: true
bind_addresses: ['::1', '127.0.0.1', '[ Ajoutez votre adresse ici ]']
bind_addresses: ['::1', '127.0.0.1', '[ Ajoutez votre adresse IP ici ]']
resources:
- names: [client, federation]
compress: false
```
Exemple si l'adresse IP de notre machine virtuelle est `10.42.155.1`:
```yaml
pid_file: "/var/run/matrix-synapse.pid"
listeners:
- port: 8008
tls: false
type: http
x_forwarded: true
bind_addresses: ['10.42.0.0/16']
bind_addresses: ['::1', '127.0.0.1', '10.42.155.1']
resources:
- names: [client, federation]
compress: false
```
(N'oubliez de redémarrer votre service Matrix après chaque modification de la configuration `homeserver.yaml` à l'aide de la commande `systemctl`)
## ⚙️ Paramétrer une instance dans un réseau privé
Nous avons une installation peu commune car notre serveur ne peut pas être accessible directement depuis internet, mais pour une production réelle, on voudrait qu'il le soit. La configuration par défaut de Synapse considère que notre serveur est accessible depuis l'extérieuret qu'il ne cherche pas à contacter des éléments situés sur le réseau privé.
Dans le cas par exemple où notre serveur contacte d'autres serveur pour obtenir des clés publiques de signatures.
Nous avons une installation peu commune car notre serveur ne peut pas être accessible directement depuis Internet, mais pour une production réelle, on voudrait qu'il le soit. La configuration par défaut de Synapse considère que notre serveur est accessible depuis l'extérieur et qu'il ne cherche pas à contacter des éléments situés sur le réseau privé.
Dans le cas par exemple où notre serveur contacte d'autres serveurs pour obtenir des clés publiques de signature.
___
Il nous suffit alors d'ajouter la ligne `registration_shared_secret` à notre configuration situé dans `/etc/matrix-synapse/homeserver.yaml`.
Une fois ette option activée, elle permet d'enregistrer des comptes standard ou administrateur par toute personne possédant le code secret partagé, même si l'option enable_registration n'est pas activée.
Une fois cette option activée, elle permet d'enregistrer des comptes standard ou administrateur par toute personne possédant le code secret partagé, même si l'option `enable_registration` n'est pas activée.
Cette fonction est principalement destinée à être utilisée avec le script register_new_matrix_user (voir Enregistrement d'un utilisateur) ; toutefois, l'interface est documentée.
Cette fonction est principalement destinée à être utilisée avec le script `register_new_matrix_user`. Toutefois, l'interface est documentée.
Configuration à utilisé :
Configuration à utiliser:
```bash
registration_shared_secret : <Chaîne privée>
```
registration_shared_secret: [chaîne privée]
```
___
## 🖥️ Configuration d'une base de données Postgres
Synapse, par défaut, utilise une base de données sqlite qui n'est pas suffisant pour une instance en production. Nous allons modifier notre configuration afin d'utiliser une base de données Postgres. Allez dans le fichier de configuration `/etc/matrix-synapse/homeserver.yaml` et la configuration qui devrait être comme ceci :
Synapse, par défaut, utilise une base de données SQLite, qui n'est pas suffisante pour une instance en production. Nous allons modifier notre configuration afin d'utiliser une base de données PostgreSQL. Allez dans le fichier de configuration `/etc/matrix-synapse/homeserver.yaml` et modifiez la configuration sous `database`...
```bash
```yaml
database:
name: sqlite3
args:
database: /path/to/homeserver.db
```
Afin d'avoir ceci
...afin d'avoir celle-ci:
```bash
```yaml
database:
name: psycopg2
args:
......@@ -97,64 +112,91 @@ database:
port: 5432
```
Maintenant notre configuration postgres mise en place, nous devons recréer cette base avec les bonnes options.
(N'oubliez de redémarrer votre service Matrix après chaque modification de la configuration `homeserver.yaml` à l'aide de la commande `systemctl`)
Tout d'abord, nous allons supprimer notre base de donnée précédente matrix :
Maintenant notre configuration PostgreSQL mise en place, nous devons recréer cette base avec les bonnes options.
Tout d'abord, nous allons supprimer notre base de données précédente:
```bash
sudo -u postgres dropdb synapse
```
Nous devons ensuite créer notre base de données Synapse :
Nous devons ensuite recréer notre base de données Synapse, mais cette fois-ci en se basant sur une template:
```bash
sudo -u postgres createdb --encoding=UTF8 --locale=C --template=template0 --owner=synapse_user synapse
```
Créer ensuite le user pour synapse :
Par la suite, crééz l'utilisateur pour Synapse:
```bash
sudo -u postgres createuser -P synapse_user
```
Vous pouvez ensuite vérifier si votre base a bien été créée avec les commandes suivantes :
Vous pouvez ensuite vérifier si la base de données a bien été créée avec la commande suivante:
```bash
psql -U synapse_user -h localhost synapse
```
Dans le shell PostgreSQL:
```
\d
```
Afin de créer un utilisateur sur notre base nous devons utiliser le script `register_new_matrix_user`, en spécifiant la localisation du fichier de configuration `/etc/matrix-synapse/homeserver.yaml` en ayant spéficié le registration_shared_secret :
Afin de créer un utilisateur sur notre base de données, nous allons utiliser le script `register_new_matrix_user`, en spécifiant la localisation du fichier de configuration `/etc/matrix-synapse/homeserver.yaml` (l'option `registration_shared_secret` doit être renseignée dans le fichier au préalable):
```bash
sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml -u "username" -p "PASSWORD"
```
En remplacant "username" et "PASSWORD" par ce qui vous convient.
(Remplacez `"username"` et `"password"` par ce qui vous convient)
___
faire ceci :
Dans le fichier de configuration `~/.ssh/config` sur la machine hôte, modifiez la section dédiée à la connexion à votre machine virtuelle pour modifier les ports de tunnel SSH afin de pouvoir accéder à Matrix depuis l'extérieur:
```bash
Host vm
Hostname 10.42.133.1
User user
ProxyJump virt
LocalForward 8008 localhost:8008
Hostname 10.42.x.1
User user
ProxyJump virt
LocalForward 8008 localhost:8008
```
Une fois la configuration écrite et le tunnel SSH actif, vous pouvez vérifier si le service Matrix est bel et bien disponible en vous connectant à `http://localhost:8008` depuis un navigateur sur votre machine hôte:
![Synapse is running](/resources/synapse-running.png)
Maintenant que nous savons que Synapse tourne correctement, nous pouvons essayer de nous connecter à notre instance Matrix.
Accédez à l'instance Element Web de l'IUT via l'URL: [http://tp.iutinfo.fr:8888](http://tp.iutinfo.fr:8888).
Vous devriez voir un message vous avertissant que votre navigateur n'est pas supporté par Element. Ignorez cet avertissement en cliquant sur "**Continue anyway**".
Sur la page de connexion/enregistrement, cliquez sur "**Sign in**" (la création de compte n'est pas encore configurée).
Changez l'adresse de l'homeserver (par défaut: `matrix.org`) par `http://localhost:8008` afin de se connecter à votre instance.
Une fois l'homeserver validé, connectez vous avec les identifiants du compte créé précédemment: vous devriez voir la page principale d'Element.
___
Dans la config `/etc/matrix-synapse/homeserver.yaml`, ajouter ces lignes avant le `registration_shared_secret` :
Dans le fichier de configuration `/etc/matrix-synapse/homeserver.yaml`, ajoutez ces lignes avant le `registration_shared_secret` afin de permettre l'enregistrement de nouveaux utilisateurs via l'interface web (Element):
```bash
```yaml
enable_registration: true
enable_registration_without_verification: true
```
(N'oubliez de redémarrer votre service Matrix après chaque modification de la configuration `homeserver.yaml` à l'aide de la commande `systemctl`)
### 📚 Plus d'informations sur les outils mentionnés dans cette procédure:
- [La documentation de Synapse](https://element-hq.github.io/synapse/latest/)
<hr>
- Page précédente: [Mise en place de l'accès au service HTTP sur la VM](./http-service-vm.md)
- Page suivante: [Changement de Machine physique](./set-physical-machine.md)
\ No newline at end of file
- Page suivante: [Attribution d'une nouvelle machine physique](./set-physical-machine.md)
\ No newline at end of file
# 3.3 : Attribution d'une nouvelle machine physique
# 3.3: Attribution d'une nouvelle machine physique
Cette procédure n'est nécéssaire que dans un cadre spécifique, dans un environnement éducatif: étant donné que les étudiants peuvent changer de salle lors des séances de TP sur la SAÉ, et par conséquent d'ordinateur, le hostname présent dans la configuration Synapse diffèrera de votre hostname actuel et causera certains problèmes.
Cette procédure n'est a suivre que si vous installez matrix dans un environnement educatif. Dans la réalité, vous n'aurez jamais a modifier la machine physique lié a votre serveur synapse, surtout que cela necessite la suppression de toutes les données.
Dans la réalité, vous n'aurez jamais à modifier la machine physique liée à votre serveur Synapse, surtout que ce processus nécessite la suppression de toutes les données.
Pour effectuer ce changement, vous devez suivre ces étapes:
Pour effectuer ce changement, vous devez suivre ces étapes:
1. Arrêter le service Synapse
2. Modifier le fichier de configuration `/etc/matrix-synapse/conf.d/server_name.yaml` afin d'y mettre la nouvelle URL contenant le nouveau hostname
3. Supprimer et recréer la base de données PostgreSQL
4. Redémarrer le service Synapse
5. Recréer les utilisateurs Matrix
Voici un script shell permettant de réaliser les actions nécessaires au changement automatiquement.
- arrêter Synapse
- modifier le fichier /etc/matrix-synapse/conf.d/server_name.yml pour mettre la nouvelle URL
- détruire et recréer la base de donnée
- recréer les utilisateurs
- redémarrer Synapse
Vous devrez modifier certaines des variables présentes au début du script (variables liées à la base de données, identifiants des utilisateurs).
Voici un script permettant de réaliser les actions necessaires. Pensez tout de meme a le modifier pour modifier l'utilisateur crée. (Vous pouvez egalemennt ajouter d'autres utilisateurs).
```shell
```bash
#!/bin/bash
# Vérifier si l'argument (nouvelle URL) est passé
if [ -z "$1" ]; then
echo "Erreur : l'URL doit être spécifiée en argument."
echo "Erreur: l'URL doit être spécifiée en argument."
exit 1
fi
# Variables
NEW_URL=$1
SYNAPSE_SERVICE=matrix-synapse.service
DB_NAME=synapse
DB_USER=synapse_user
SERVER_NAME_FILE="/etc/matrix-synapse/conf.d/server_name.yaml"
# Modifier ici le nom de l'utilisateur que vous souhaitez creer
USER_TO_CREATE=username
# Modifiez ici les noms des utilisateurs à créer (ainsi que leurs mots de passe en dessous)
USERS_TO_CREATE=("username1" "username2")
USERS_PASSWORD=("password1" "password2")
# Vérification de la longueur des deux listes ci-dessus
if [ "${#USERS_TO_CREATE[@]}" -ne "${#USERS_PASSWORD[@]}" ]; then
echo "Erreur: les deux listes des identifiants des utilisateurs n'ont pas la même longueur."
exit 1
fi
# Arrêter le service Synapse
echo "Arrêt du service Synapse..."
sudo systemctl stop matrix-synapse.service
cho "Suppression de la base de données $DB_NAME..."
sudo -u postgres dropdb synapse
# Changements sur la base de données
echo "Suppression de la base de données ($DB_NAME)..."
sudo -u postgres dropdb $DB_NAME
echo "Création de la nouvelle base de données $DB_NAME..."
sudo -u postgres createdb --encoding=UTF8 --locale=C --template=template0 --owner=synapse_user synapse
echo "Création de la nouvelle base de données ($DB_NAME)..."
sudo -u postgres createdb --encoding=UTF8 --locale=C --template=template0 --owner=$DB_USER $DB_NAME
echo "Mise à jour du fichier de configuration avec la nouvelle URL ($NEW_URL)..."
sudo sed -i "s|^server_name:.*|server_name: $NEW_URL|" $SERVER_NAME_FILE
# Redémarrer le service Synapse
echo "Redémarrage du service Synapse..."
sudo systemctl start matrix-synapse.service
# Recréer un utilisateur Matrix
echo "Création de l'utilisateur Matrix '$USER_TO_CREATE'..."
sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml -u username -p "PASSWORD"
# Création des utilisateurs Matrix
for ((idx=0; idx<${#USERS_TO_CREATE[@]}; idx++)); do
USERNAME="${USERS_TO_CREATE[idx]}"
PASSWORD="${USERS_PASSWORD[idx]}"
echo "Création de l'utilisateur Matrix: $USERNAME..."
sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml -u $USERNAME -p $PASSWORD
done
echo "Le processus est terminé."
echo "Le processus de migration du serveur Synapse est terminé."
```
Une fois le script modifié, exécutez-le avec comme argument l'URL de la nouvelle machine:
```bash
user@matrix $ sudo bash script.sh machine.iutinfo.fr:8008
```
![Script de reconfiguration automatisée Synapse](/resources/script-synapse.png)
Une fois le script modifier executer le avec comme argument l'url de la nouvelle machine :
### Attention:
> sudo sh script.sh machine.iutinfo.fr:8008
Veillez bien à lancer le script à l'aide de `bash`, et non `sh`: `bash` supporte l'utilisation de listes/tableaux, que nous utilisons ici pour la création automatisée d'utilisateurs Matrix. Si le script est lancé avec `sh`, le script ne marchera pas.
<hr>
- Page précédente: [Connexion au serveur Matrix](./install-config-synapse.md)
- Page précédente: [Installation et configuration de Synapse](./install-config-synapse.md)
- Page suivante: [Sommaire (partie 4)](../4-element-proxy/README.md)
\ No newline at end of file
......@@ -4,10 +4,10 @@
# Sommaire
- [4.1 Instllation de Element Web](./install-element-web.md)
- [4.2 Installation d'un reverse proxy](./install-reverse-proxy.md)
- [4.1: Installation de Element Web](./install-element-web.md)
- [4.2: Installation d'un reverse proxy](./install-reverse-proxy.md)
<hr>
- Page précédente: [a ajouter]()
- Page suivante: [a ajouter]()
\ No newline at end of file
- Page précédente: [Attribution d'une nouvelle machine physique](/procedures/3-synapse/set-physical-machine.md)
- Page suivante: [Installation de Element Web](install-element-web.md)
\ No newline at end of file
# 4.1 : Installation de Element Web
# 4.1: Installation de Element Web
## 🌐 Choix du serveur web
## Choix du serveur web
Tout d'abord, nous devons choisir le serveur web que l'on souhaite installer entre Apache et Nginx.
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.
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.
| **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 |
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)
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
## 📦 Installer le package `element-web`
Pour installer le package element-web, executer cette liste de commande:
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.
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` :
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
"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` :
Ensuite, dans `/etc/nginx/sites-available`, créez le fichier `element` avec le contenu suivant:
```
server {
......@@ -78,38 +72,45 @@ server {
# Configuration de la sécurité et des headers
location /_matrix/ {
proxy_pass http://localhost:8008/; # Remplacez par l'adresse de votre s>
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 aux site-enable:
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`:
`sudo ln -s /etc/nginx/sites-available/element-web /etc/nginx/sites-enabled/`
Verifier la configuration de nginx:
Vérifiez la configuration de nginx:
> sudo nginx -t
```bash
user@matrix $ sudo nginx -t
```
Puis redemarrer:
Puis redémarrez le service nginx:
> sudo systemctl restart nginx
```bash
user@matrix $ sudo systemctl restart nginx
```
Désormais, sur le port 8080 de la vm, le serveur element est en ligne
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 vorte machine, ainsi, en allant sur `localhost:8080` votre serveur element sera disponible.
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 8080 10.42.154.1:8080
LocalForward 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: [4.2 Installation d'un reverse proxy](./install-reverse-proxy.md)
\ No newline at end of file
- Page précédente: [Sommaire (partie 4)](README.md)
- Page suivante: [Installation d'un reverse proxy](install-reverse-proxy.md)
\ No newline at end of file
# 4.2 Installation d'un reverse proxy
# 4.2: Installation d'un reverse proxy
## Choix du reverse proxy
......@@ -22,10 +22,8 @@ Ici nous allons donc utiliser `nginx` (???????)
## Etape 1 : Reinstaller une machine virtuelle
Avant tout, nous devons reinstaller une nouvelle machine virtuelle que nous nommerons `proxy` est qui aura pour adresse ip `10.42.x.2`. Pour cela, consultez [1.3: Création et gestion de la machine virtuelle](../1-virtual-machine/create-virtual-machine.md) et [1.5: Configuration réseau et mise à jour](../1-virtual-machine/setup-virtual-network.md)
## Etape 2 : Installer un serveur Nginx
Maintenant, il faut installer sur cette machine un serveur Nginx, qui redirigera les requetes vers notre autre serveur.
......@@ -34,7 +32,6 @@ Pour cela, consultez [3.1 : Mise en place de l'accès au service HTTP sur la VM]
## Etape 3
## Etape x : Redirection de port
Modifier votre config ssh `~/.ssh/config` pour que l'ancienne machine virtuelle ne soit plus directement accessible sur le port 8008 de la machine physique.
......@@ -47,9 +44,5 @@ Puis, ajoutez cette ligne pour que le reverse proxy soit accessible sur le port
> LocalForward 9090 10.42.154.2:80
- Page précédente: [4.1 Installation de Element Web](./install-element-web.md)
- Page suivante: [SOMMAIRE]()
\ No newline at end of file
- Page suivante: [Sommaire (partie 5)]()
\ No newline at end of file
resources/script-synapse.png

87.7 KiB

resources/synapse-running.png

123 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment