4.7 KiB
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 |
| GitHub | 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
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
- Générer la configuration initiale :
docker run -it --rm -v synapse_data:/data matrixdotorg/synapse:latest generate. - Configurer PostgreSQL (passer de SQLite à Postgres dès qu'on sort du test).
- DNS : configurer
matrix.example.com(A record) et_matrix._tcp.example.com(SRV). - Reverse proxy Traefik avec sous-domaine
matrix.example.com. - Activation du module workers en Python si l'instance devient grosse (workers séparés pour la federation, la synchro, etc.).
- Serveur de push : installer 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
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