105 lines
4.6 KiB
Markdown
105 lines
4.6 KiB
Markdown
---
|
|
title: Chitchatter
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, messaging, p2p, webrtc, e2e, browser, sans-serveur, foss]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Messaging, https://github.com/jeremyckahn/chitchatter, https://chitchatter.im/]
|
|
---
|
|
|
|
# 💬 Chitchatter
|
|
|
|
> **Du chat P2P pur, dans le navigateur, sans aucun serveur central** : chaque conversation est un canal WebRTC chiffré entre pairs. Pas de backend à déployer, pas de base de données, pas de trace côté serveur — uniquement les pairs.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [chitchatter.im](https://chitchatter.im/) |
|
|
| **GitHub** | [jeremyckahn/chitchatter](https://github.com/jeremyckahn/chitchatter) |
|
|
| **Licence** | MPL-2.0 |
|
|
| **Langage** | JavaScript, TypeScript |
|
|
| **Étoiles GitHub** | 2.3k ⭐ |
|
|
| **Catégorie** | Messaging |
|
|
|
|
## 📝 Description
|
|
|
|
**Chitchatter** est une expérience radicale : un client de chat **100% peer-to-peer** qui tourne entièrement dans le **navigateur**. Pas de serveur de messagerie, pas de base de données : chaque salon de discussion est un **canal WebRTC** établi directement entre les participants, le **chiffrement E2E est systématique**, et seuls les pairs connectés détiennent l'historique des messages.
|
|
|
|
L'app utilise un **serveur de signaling minimal** (juste pour établir la connexion initiale) qui peut être remplacé par votre propre instance si vous souhaitez un contrôle total. Ensuite, tous les échanges passent en P2P via **WebRTC DataChannel**, ce qui rend Chitchatter **résistant à la censure** et à l'analyse réseau en clair.
|
|
|
|
Fonctionnalités notables : **salons publics ou privés** (avec lien d'invitation), **partage de fichiers** chiffré en P2P, **messagerie directe**, **modèles de LLM locaux** (intégration optionnelle pour les conversations IA), **citations et Markdown**, **avatars et profils locaux** (pas d'annuaire central). C'est un excellent choix pour des conversations sensibles, à condition que tous les pairs soient en ligne simultanément pour persister l'historique.
|
|
|
|
## 🚀 Installation
|
|
|
|
### Utilisation directe (le plus simple)
|
|
|
|
Rendez-vous sur **[chitchatter.im](https://chitchatter.im/)** : aucun compte, aucune installation. Créez un salon, partagez le lien.
|
|
|
|
### Auto-hébergement via Docker
|
|
|
|
```yaml
|
|
services:
|
|
chitchatter:
|
|
image: ghcr.io/jeremyckahn/chitchatter:latest
|
|
container_name: chitchatter
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8080:8080"
|
|
environment:
|
|
PORT: 8080
|
|
# Signaling server par défaut, ou votre propre instance
|
|
PUBLIC_URL: https://chat.example.com
|
|
```
|
|
|
|
### Build statique
|
|
|
|
```bash
|
|
git clone https://github.com/jeremyckahn/chitchatter
|
|
cd chitchatter
|
|
npm install
|
|
npm run build
|
|
# Le build statique est servable depuis n'importe quel serveur web
|
|
```
|
|
|
|
## ⚙️ Configuration Initiale
|
|
|
|
1. **Choisir l'instance de signaling** : publique par défaut ou auto-hébergée (variable d'environnement `SIGNALING_URL`).
|
|
2. **Configurer HTTPS** : WebRTC impose HTTPS (sauf localhost).
|
|
3. **(Optionnel) Activer le mode TURN** si des pairs sont derrière des NAT très stricts.
|
|
4. **Tester un salon à 2 pairs** pour valider la connectivité.
|
|
5. **Partager le lien** avec vos contacts : ils rejoignent instantanément.
|
|
|
|
## 🔄 Alternatives
|
|
|
|
- **Briar** — P2P via Tor/Bluetooth, apps natives Android
|
|
- **Jami** — P2P distribué, multi-plateforme
|
|
- **Tox** — P2P avec clients desktop
|
|
- **SimpleX Chat** — P2P aussi, mais avec serveurs de files chiffrés optionnels
|
|
- **Matrix / Element** — Fédéré mais avec serveurs persistants
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- ✅ **Chiffrement E2E obligatoire** sur tous les canaux WebRTC
|
|
- ✅ **Aucun message ne transite par un serveur applicatif** après l'établissement du canal
|
|
- ✅ **Open-source** et auditable (MPL-2.0)
|
|
- ⚠️ L'historique de conversation n'existe que sur les pairs connectés : si personne n'est en ligne, pas d'archive
|
|
- ⚠️ Vulnérable à l'analyse du trafic de signaling si le serveur de signaling n'est pas de confiance
|
|
|
|
## 📚 Ressources
|
|
|
|
- [Site officiel](https://chitchatter.im/)
|
|
- [GitHub jeremyckahn/chitchatter](https://github.com/jeremyckahn/chitchatter)
|
|
- [Démo en ligne](https://chitchatter.im/)
|
|
- [Documentation WebRTC DataChannel](https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Using_data_channels)
|
|
|
|
## Pages Liées
|
|
|
|
- [[cat-messaging]] — Catégorie Messaging
|
|
- [[app-traefik]] — Reverse proxy HTTPS (requis pour WebRTC)
|
|
- [[securisation-home-lab]] — Bonnes pratiques P2P
|
|
- [[recettes-docker-compose]] — Stack static + reverse proxy
|
|
- [[app-simplex-chat]] — Autre approche privacy-first
|