113 lines
4.7 KiB
Markdown
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
|