Files
2026-06-09 18:40:21 +02:00

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

  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 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