Initial vault setup
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user