Files
wiki/Catalogue-Self-Hosted/apps/app-synapse.md
T
2026-06-09 18:40:21 +02:00

113 lines
4.7 KiB
Markdown

---
title: Synapse
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, messaging, matrix, federation, python, decentralise, e2e]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Messaging, https://github.com/element-hq/synapse, https://element-hq.github.io/synapse/latest/]
---
# 💬 Synapse
> **Le serveur Matrix de référence**, utilisé par matrix.org, les gouvernements, l'armée française et la plupart des instances Matrix publiques. C'est l'implémentation la plus complète et la plus éprouvée du protocole Matrix.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [element-hq.com](https://element-hq.com/synapse) |
| **GitHub** | [element-hq/synapse](https://github.com/element-hq/synapse) |
| **Licence** | AGPL-3.0 |
| **Langage** | Python, Twisted |
| **Étoiles GitHub** | 4.3k ⭐ (sur la nouvelle org) |
| **Catégorie** | Messaging (Serveur Matrix) |
## 📝 Description
**Synapse** est l'**implémentation de référence** du protocole **Matrix**, développée par Element (anciennement New Vector / Matrix.org Foundation). C'est un serveur décentralisé de messagerie instantanée qui gère channels, fils de discussion, messages chiffrés, présence, appels voix/vidéo (via WebRTC) et **fédération inter-serveurs**.
La philosophie Matrix est celle d'un **Internet de la messagerie** : chaque organisation, chaque particulier peut déployer son propre serveur, et tous les serveurs Matrix peuvent dialoguer entre eux par fédération. Synapse implémente tout le protocole, y compris les **Messages Asymétriques** (chiffrement E2E) et les **State Events** (états répartis via CRDT-like).
Le client le plus utilisé est **Element** (Web, Desktop, iOS, Android), mais il existe aussi **FluffyChat**, **Nheko** ou **SchildiChat**. C'est la base technique de **Element One**, **Element Call** et de nombreuses offres SaaS (Element Cloud, Beeper, etc.). L'armée française, le gouvernement allemand, l'État de Thuringe l'utilisent pour leur communication souveraine.
## 🚀 Installation
### Option recommandée : Docker Compose
```yaml
services:
synapse:
image: matrixdotorg/synapse:latest
container_name: synapse
restart: unless-stopped
volumes:
- synapse_data:/data
environment:
SYNAPSE_SERVER_NAME: matrix.example.com
SYNAPSE_REPORT_STATS: "no"
ports:
- "8008:8008" # Client + federation
- "8448:8448" # Federation (replication)
db:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_DB: synapse
POSTGRES_USER: synapse
POSTGRES_PASSWORD: change-me
volumes:
- synapse_db:/var/lib/postgresql/data
redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
synapse_data:
synapse_db:
```
## ⚙️ Configuration Initiale
1. **Générer la configuration initiale** : `docker run -it --rm -v synapse_data:/data matrixdotorg/synapse:latest generate`.
2. **Configurer PostgreSQL** (passer de SQLite à Postgres dès qu'on sort du test).
3. **DNS** : configurer `matrix.example.com` (A record) et `_matrix._tcp.example.com` (SRV).
4. **Reverse proxy Traefik** avec sous-domaine `matrix.example.com`.
5. **Activation du module workers** en Python si l'instance devient grosse (workers séparés pour la federation, la synchro, etc.).
6. **Serveur de push** : installer [Sygnal](https://github.com/matrix-org/sygnal) pour les notifications push mobiles.
## 🔄 Alternatives
- **Dendrite** — Implémentation en Go, plus performante, en cours de stabilisation
- **Conduit** — Implémentation en Rust, très légère (monothread)
- **Element Cloud** — Synapse managé par Element
- [[app-ergo]] — Pas Matrix, mais autre serveur de messagerie décentralisé (XMPP/IRC)
- [[app-rocket-chat]] — Pas Matrix, mais bridge possible
## 🔐 Sécurité
-**Chiffrement E2E** bout-en-bout des messages (olm/megolm)
- ✅ Fédération authentifiée par certificats
- ✅ 2FA, OIDC, LDAP, SAML
- ⚠️ Exposer **8008** (client) et **8448** (fédération) sur le reverse proxy
- ⚠️ **Serveur de clés** : la fédération E2E repose sur des serveurs de clés publics, à monitorer
- ⚠️ Sauvegardes PostgreSQL + `synapse_data` (blobs) essentielles
## 📚 Ressources
- [Site officiel](https://element-hq.com/synapse)
- [GitHub element-hq/synapse](https://github.com/element-hq/synapse)
- [Documentation](https://element-hq.github.io/synapse/latest/)
- [Site Matrix](https://matrix.org/)
## Pages Liées
- [[cat-messaging]] — Catégorie Messaging
- [[app-rocket-chat]] — Bridge Matrix compatible
- [[app-converse]] — Client XMPP, à ne pas confondre
- [[app-traefik]] — Reverse proxy
- [[securisation-home-lab]] — Hardening