SimpleX-Chat/docs/lang/fr/SERVER.md

335 lines
15 KiB
Markdown
Raw Normal View History

website: add docs to website (#2080) * website: add fontmatter & improve image URLs where necessary * website: add docs to website * website: add prismjs for code highlighting * website: change npm install position in web.sh * website: fix an image URL in lang/cs/README.md * website: improve image paths in lang/cs/translations.md * website: add responsiveness & improve stylings of docs * website: add dir to navbar in blog & docs * website: remove scroll in mobile dropdown menu * website: remove rfcs & add guide docs to website * website: remove file renaming script from web.sh * website: add menu to docs in nav * website: add hash list & add scroll to headers * website: customize docs frontmatter through JS * website: remove supported_languages.json * website: move merge_translations.js to JS folder * website: add the following changes to docs - add frontmatter to new doc merged from master - add ignoreForWeb property to frontmatter of README.md docs * website: remove package-lock.json from .gitignore * website: add package-lock.json from .gitignore * website: add no docs message to docs dropdown * website: improve the sidebar of docs * website: add revision date to docs * website: add script to add version to docs frontmatter * website: add layout to display message in docs if its version is old * website: improve nav responsiveness * website: remove frontmatter form main README & rfcs * website: remove rfcs from website folder * website: add ignore condition for rfcs in .eleventy * website: remove frontmatter from lang README docs * website: remove README from website's lang docs * website: add guides menu in nav * website: following changes - add docs_dropdown.json - extend reference menu in nav - remove docs menu from nav * website: fix in docs sidebar * website: revert main docs README.md files * website: revert main docs README.md files * website: move scripts out of js that are for build * website: remove displayAt form guide docs * website: create a docs_sidebar.json & shift to that approach * update navigation * website: set navbar * website: add icons to external links * website: change the approach for docs sidebar creation * website: update docs template * website: add some strings to en.json and map them accordingly * remove icon --------- Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-05-01 02:31:23 +05:00
---
title: Héberger votre propre serveur SMP
revision: 31.01.2023
---
| 31.01.2023 | FR, [EN](/docs/SERVER.md), [CZ](/docs/lang/cs/SERVER.md) |
# Héberger votre propre serveur SMP
## Présentation générale
Un serveur SMP est un serveur relais utilisé pour transmettre les messages sur le réseau SimpleX. Les apps SimpleX Chat ont des serveurs prédéfinis (pour les apps mobiles, smp8, smp9 et smp10.simplex.im), mais vous pouvez facilement modifier la configuration de l'app pour utiliser d'autres serveurs.
Seuls les utilisateurs de SimpleX déterminent quel serveur est utilisé pour recevoir les messages, séparément pour chaque contact (ou pour chaque connexion à un membre d'un groupe), et ces serveurs ne sont que temporaires, car l'adresse de réception peut changer.
_Veuillez noter_ : lorsque vous modifiez les serveurs dans la configuration de l'app, cela n'affecte que les serveurs qui seront utilisés pour les nouveaux contacts. Les contacts existants ne seront pas automatiquement déplacés vers les nouveaux serveurs, mais vous pouvez les déplacer manuellement à l'aide du bouton ["Changer d'adresse de réception"](/blog/20221108-simplex-chat-v4.2-security-audit-new-website.md#change-your-delivery-address-beta) sur les fiches d'information de contact/membre ce sera bientôt automatisé.
## Installation
0. Tout d'abord, installez `smp-server`:
- Déploiement manuel :
- [Compiler à partir de la source](https://github.com/simplex-chat/simplexmq#using-your-distribution)
- [Utiliser une version pré-compilée](https://github.com/simplex-chat/simplexmq#install-binaries)
- Sinon, vous pouvez déployer votre `smp-server` en utilisant :
- [Docker container](https://github.com/simplex-chat/simplexmq#using-docker-1)
- [Linode StackScript](https://github.com/simplex-chat/simplexmq#deploy-smp-server-on-linode)
L'installation manuelle nécessite quelques actions préalables :
1. Créer un utilisateur et un groupe pour votre `smp-server`:
```sh
sudo useradd -m smp
```
2. Créer les répertoires nécessaires et y attribuer les permissions :
```sh
sudo mkdir -p /var/opt/simplex /etc/opt/simplex
sudo chown smp:smp /var/opt/simplex /etc/opt/simplex
```
3. Autoriser le port du `smp-server` dans le pare-feu:
```sh
# Pour Ubuntu
ufw allow 5223
```
4. **Optionnel** - Si vous utilisez une distribution avec `systemd`, créez le fichier `/etc/systemd/system/smp-server.service` avec le contenu suivant :
```sh
[Unit]
Description=Serveur SMP
[Service]
User=smp
Group=smp
Type=simple
ExecStart=smp-server start
ExecStopPost=/usr/bin/env sh -c '[ -e "/var/opt/simplex/smp-server-store.log" ] && cp "/var/opt/simplex/smp-server-store.log" "/var/opt/simplex/smp-server-store.log.bak"'
KillSignal=SIGINT
TimeoutStopSec=infinity
Restart=always
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
```
Et exécutez `sudo systemctl daemon-reload`.
## Configuration
Pour voir les options disponibles, exécutez `smp-server` sans paramètres :
```sh
sudo su smp -c smp-server
...
Available commands:
init Initialize server - creates /etc/opt/simplex and
/var/opt/simplex directories and configuration files
start Start server (configuration:
/etc/opt/simplex/smp-server.ini)
delete Delete configuration and log files
```
Vous pouvez obtenir de l'aide supplémentaire en exécutant `sudo su smp -c "smp-server <command> -h"`
Ensuite, nous devons configurer `smp-server`:
### Interactif
Exécutez la commande suivante :
```sh
sudo su smp -c "smp-server init"
```
Il y a plusieurs options disponibles :
- `Enable store log to restore queues and messages on server restart (Yn):`
Entrez `y` pour permettre la sauvegarde et la restauration des connexions et des messages lorsque le serveur est redémarré.
_Veuillez noter_ : il est important d'utiliser SIGINT pour redémarrer le serveur, sinon les messages non distribués ne seront pas restaurés. Les connexions seront restaurées indépendamment de la façon dont le serveur est redémarré, car contrairement aux messages, elles sont ajoutées aux logs (append-only) seulement à chaque changement.
- `Enable logging daily statistics (yN):`
Entrez `y` pour activer l'enregistrement des statistiques au format CSV, par exemple, elles peuvent être utilisées pour afficher des graphiques d'utilisation globale dans `Grafana`.
Ces statistiques incluent le nombre quotidien de files d'attente créées, sécurisées et supprimées, de messages envoyés et reçus, ainsi que le nombre quotidien, hebdomadaire et mensuel de files d'attente actives (c'est-à-dire les files d'attente qui ont été utilisées pour des messages). Nous estimons que ces informations ne comportent aucun élément permettant de corréler différentes files d'attente comme appartenant aux mêmes utilisateurs, mais si vous pensez que cela peut être exploité de quelque manière que ce soit, veuillez nous le faire savoir, de manière confidentielle.
- `Require a password to create new messaging queues?`
Entrez `r` ou votre mot de passe pour protéger votre `smp-server`, ou `n` pour désactiver la protection par mot de passe.
- `Enter server FQDN or IP address for certificate (127.0.0.1):`
Entrez votre domaine ou l'adresse IP sur laquelle votre serveur smp fonctionne - elle sera incluse dans les certificats du serveur et également indiquée dans l'adresse du serveur.
### Option via ligne de commande
Exécutez la commande suivante :
```sh
sudo su smp -c "smp-server init -h"
...
Available options:
-l,--store-log Enable store log for persistence
-s,--daily-stats Enable logging daily server statistics
-a,--sign-algorithm ALG Signature algorithm used for TLS certificates:
ED25519, ED448 (default: ED448)
--ip IP Server IP address, used as Common Name for TLS online
certificate if FQDN is not supplied
(default: "127.0.0.1")
-n,--fqdn FQDN Server FQDN used as Common Name for TLS online
certificate
--no-password Allow creating new queues without password
--password PASSWORD Set password to create new messaging queues
-y,--yes Non-interactive initialization using command-line
options
-h,--help Show this help text
```
Vous devriez déterminer quels paramètres sont nécessaires pour votre cas d'utilisation et ensuite exécuter `smp-server init` avec le paramètre `-y` pour une initialisation non-interactive :
```sh
sudo su smp -c "smp-server init -y -<your flag> <your option>"
```
Par exemple, exécutez :
```sh
sudo su smp -c "smp-server init -y -l --ip 192.168.1.5 --password test"
```
pour initialiser votre `smp-server` avec comme configuration :
- restauration des connexions et des messages lors du redémarrage du serveur (paramètre `-l`),
- adresse IP `192.168.1.5`,
- protection du `smp-server` avec comme mot de passe `test`.
---
Après cela, votre installation est terminée et vous devriez voir dans votre teminal quelque chose comme ceci :
```sh
Certificate request self-signature ok
subject=CN = 127.0.0.1
Server initialized, you can modify configuration in /etc/opt/simplex/smp-server.ini.
Run `smp-server start` to start server.
----------
You should store CA private key securely and delete it from the server.
If server TLS credential is compromised this key can be used to sign a new one, keeping the same server identity and established connections.
CA private key location: /etc/opt/simplex/ca.key
----------
SMP server v3.4.0
Fingerprint: d5fcsc7hhtPpexYUbI2XPxDbyU2d3WsVmROimcL90ss=
Server address: smp://d5fcsc7hhtPpexYUbI2XPxDbyU2d3WsVmROimcL90ss=:V8ONoJ6ICwnrZnTC_QuSHfCEYq53uLaJKQ_oIC6-ve8=@<hostnames>
```
L'adresse du serveur ci-dessus doit être utilisée dans la configuration de votre client et si vous avez ajouté le mot de passe du serveur, il ne doit être partagé qu'avec les personnes que vous souhaitez autoriser à utiliser votre serveur pour recevoir les messages (tous vos contacts pourront envoyer des messages, car cela ne nécessite pas de mot de passe). Si vous avez fourni une adresse IP ou un nom d'hôte lors de l'initialisation, ils seront indiqués dans l'adresse du serveur, sinon remplacez `<hostnames>` par les adresses réelles du serveur.
## Documentation
Tous les fichiers requis pour `smp-server` sont situés dans le dossier `/etc/opt/simplex/`.
Les messages stockés, les connexions, les statistiques et les logs du serveur sont situés dans le dossier `/var/opt/simplex/`.
### Adresse de serveur SMP
Une adresse de serveur SMP a le format suivant :
```
smp://<fingerprint>[:<password>]@<public_hostname>[,<onion_hostname>]
```
- `<fingerprint>`
Empreinte du certificat de votre `smp-server`. Vous pouvez vérifier l'empreinte de votre certificat dans `/etc/opt/simplex/fingerprint`.
- **optionnel** `<password>`
Votre mot de passe configuré pour `smp-server`. Vous pouvez vérifier votre mot de passe configuré dans `/etc/opt/simplex/smp-server.ini`, sous la section `[AUTH]` dans le champ `create_password:`.
- `<public_hostname>`, **optionnel** `<onion_hostname>`
Votre(vos) nom(s) d'hôte configuré(s) de `smp-server`. Vous pouvez vérifier vos hôtes configurés dans `/etc/opt/simplex/smp-server.ini`, dans la section `[AUTH]` dans le champ `host:`.
### Systemd commandes
Pour démarrer `smp-server` au démarrage de l'hôte, exécutez :
```sh
sudo systemctl enable smp-server.service
Created symlink /etc/systemd/system/multi-user.target.wants/smp-server.service → /etc/systemd/system/smp-server.service.
```
Pour démarrer `smp-server`, exécutez :
```sh
sudo systemctl start smp-server.service
```
Pour vérifier l'état du `smp-server`, exécutez :
```sh
sudo systemctl status smp-server.service
● smp-server.service - SMP server
Loaded: loaded (/etc/systemd/system/smp-server.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-11-23 19:23:21 UTC; 1min 48s ago
Main PID: 30878 (smp-server)
CGroup: /docker/5588ab759e80546b4296a7c50ffebbb1fb7b55b8401300e9201313b720989aa8/system.slice/smp-server.service
└─30878 smp-server start
Nov 23 19:23:21 5588ab759e80 systemd[1]: Started SMP server.
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: SMP server v3.4.0
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: Fingerprint: d5fcsc7hhtPpexYUbI2XPxDbyU2d3WsVmROimcL90ss=
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: Server address: smp://d5fcsc7hhtPpexYUbI2XPxDbyU2d3WsVmROimcL90ss=:V8ONoJ6ICwnrZnTC_QuSHfCEYq53uLaJKQ_oIC6-ve8=@<hostnames>
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: Store log: /var/opt/simplex/smp-server-store.log
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: Listening on port 5223 (TLS)...
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: not expiring inactive clients
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: creating new queues requires password
```
Pour arrêter `smp-server`, exécutez :
```sh
sudo systemctl stop smp-server.service
```
Pour vérifier la "tail" de `smp-server` des logs, exécutez :
```sh
sudo journalctl -fu smp-server.service
Nov 23 19:23:21 5588ab759e80 systemd[1]: Started SMP server.
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: SMP server v3.4.0
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: Fingerprint: d5fcsc7hhtPpexYUbI2XPxDbyU2d3WsVmROimcL90ss=
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: Server address: smp://d5fcsc7hhtPpexYUbI2XPxDbyU2d3WsVmROimcL90ss=:V8ONoJ6ICwnrZnTC_QuSHfCEYq53uLaJKQ_oIC6-ve8=@<hostnames>
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: Store log: /var/opt/simplex/smp-server-store.log
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: Listening on port 5223 (TLS)...
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: not expiring inactive clients
Nov 23 19:23:21 5588ab759e80 smp-server[30878]: creating new queues requires password
```
### Suivi de l'activité
Vous pouvez activer les statistiques de `smp-server` sur le tableau de bord `Grafana` en mettant la valeur `on` dans `/etc/opt/simplex/smp-server.ini`, sous la section `[STORE_LOG]` dans le champ `log_stats:`.
Les journaux seront stockés dans un fichier `csv` dans `/var/opt/simplex/smp-server-stats.daily.log`. Les champs pour le fichier `csv` sont :
```sh
fromTime,qCreated,qSecured,qDeleted,msgSent,msgRecv,dayMsgQueues,weekMsgQueues,monthMsgQueues
```
- `fromTime` - horodatage; date et heure de l'événement
- `qCreated` - int; files d'attente créées
- `qSecured` - int; files d'attente établies
- `qDeleted` - int; files d'attente supprimées
- `msgSent` - int; messages envoyés
- `msgRecv` - int; messages reçus
- `dayMsgQueues` - int; files d'attente actives en un jour
- `weekMsgQueues` - int; files d'attente actives en une semaine
- `monthMsgQueues` - int; files d'attente actives en un mois
Pour importer du `csv` dans `Grafana` il faut :
1. Installer le plugin Grafana : [Grafana - CSV datasource](https://grafana.com/grafana/plugins/marcusolsson-csv-datasource/)
2. Autoriser le mode local en ajoutant ce qui suit :
```sh
[plugin.marcusolsson-csv-datasource]
allow_local_mode = true
```
... to `/etc/grafana/grafana.ini`
3. Ajouter une source de données CSV :
- Dans le menu latéral, cliquez sur l'onglet Configuration (icône en forme de rouage).
- Cliquez sur Ajouter une source de données dans le coin supérieur droit de l'onglet Sources de données.
- Entrez "CSV" dans le champ de recherche pour trouver la source de données CSV.
- Cliquez sur le résultat de la recherche qui indique "CSV".
- Dans URL, entrez un fichier qui pointe vers le contenu CSV.
4. C'est fait ! Vous devriez être en mesure de créer votre propre tableau de bord avec des statistiques.
Pour plus de documentation, voir : [CSV Data Source pour Grafana - Documentation](https://grafana.github.io/grafana-csv-datasource/)
### Configurer l'app pour utiliser le serveur
Pour configurer l'app afin d'utiliser votre serveur de messagerie, copiez son adresse complète, y compris le mot de passe, et ajoutez-la à l'application. Vous avez la possibilité d'utiliser votre serveur avec les serveurs prédéfinis ou sans eux - vous pouvez les supprimer ou les désactiver.
Il est également possible de partager l'adresse de votre serveur avec vos amis en leur permettant de scanner le code QR dans les paramètres du serveur. Ce code inclura le mot de passe du serveur, ce qui leur permettra aussi de recevoir des messages via votre serveur.
_Veuillez noter_ : vous avez besoin de la version 4.0 du serveur SMP pour avoir le support du mot de passe. Si vous avez déjà déployé un serveur, vous pouvez ajouter le mot de passe en l'ajoutant au fichier INI du serveur.
<img src="/docs/server_config_1.png" width="288"> &nbsp;&nbsp; <img src="/docs/server_config_2.png" width="288"> &nbsp;&nbsp; <img src="/docs/server_config_3.png" width="288">