🚀 **Branche de développement active : `Liberchat-6.1.20
« Pour l’autogestion, la solidarité et la liberté numérique. Un chat libre, par et pour le peuple. »
Un chat en temps réel, autogéré, horizontal, pour la Commune numérique.
📝 Documentation | 🤝 Contribuer | 📧 Contact
« La communication libre est une arme. Organisons-nous, partageons, résistons ! »
- Aucune hiérarchie, pas de chef : tout le monde a le même pouvoir.
- Respect de la vie privée : pas de tracking, pas de pub, pas de collecte de données.
- Code ouvert, transparent, modifiable : fork, partage, autogestion.
- Solidarité et entraide : entraide technique et humaine, support communautaire.
- Hébergement décentralisé possible : pour ne dépendre d’aucun géant du web.
-
💬 Chat en Temps Réel
- Messages instantanés
- Indicateur de frappe
- Historique des messages
- Support complet des emojis
- Interface responsive mobile
- Support des liens enrichis (embed) : les liens partagés dans le chat affichent un aperçu (titre, image, description) s’ouvrent dans un nouvel onglet sans déconnexion de session.
-
👥 Gestion des Utilisateurs
- Liste des utilisateurs en ligne
- Statuts de connexion
- Notifications en temps réel
- Noms d'utilisateur uniques
-
🛡️ Sécurité
- Connexions sécurisées
- Authentification utilisateur
- Protection contre le spam
- Variables d'environnement sécurisées
-
🎨 Interface
- Thème sombre élégant
- Animations fluides
- Interface intuitive et responsive
- Style moderne
- Sélecteur d'emojis intégré
- Optimisations mobile/desktop
- 🖍️ Thèmes personnalisables CSS : créez vos propres thèmes avec du CSS personnalisé
-
🎤 Messages vocaux universels
- Enregistrement vocal intégré (bouton micro)
- Lecture et envoi de vocaux chiffrés de bout en bout
- Compatibilité maximale : Chrome, Firefox (ESR inclus), Edge, Safari, Electron, Android, iOS, WebView…
- Sélection automatique du format audio optimal (ogg/opus, webm/opus, mp4)
- Lecture sans téléchargement, sans fuite de la clé
- Impossible de télécharger les vocaux (confidentialité renforcée)
-
🖼️ Images chiffrées de bout en bout (E2EE)
- Toutes les images envoyées dans le chat sont chiffrées avant d’être transmises au serveur
- Seuls les utilisateurs ayant la clé peuvent les voir
- Le serveur ne voit jamais le contenu des images
-
🎤 Messages vocaux chiffrés de bout en bout (E2EE)
- Les messages audio sont chiffrés comme les messages texte et images
- Confidentialité totale : seuls les utilisateurs avec la clé peuvent écouter les vocaux
- Le serveur ne fait que relayer les données chiffrées
-
📲 Progressive Web App (PWA)
- Installation sur l'écran d'accueil (iOS, Android, desktop)
- Support du mode hors-ligne (service worker)
- Manifest et icônes adaptés pour mobile
-
✊ Réactions Emoji Chiffrées (E2EE)
- Ajoutez des réactions emoji à chaque message
- Les réactions sont chiffrées de bout en bout : seuls les utilisateurs ayant la clé voient qui a réagi et avec quel emoji
- Synchronisation en temps réel entre tous les clients
- Respect total de la vie privée : le serveur ne connaît jamais le contenu des réactions
LiberChat intègre désormais un mode accessibilité complet pour les personnes en situation de handicap !
Fonctionnalités :
- Contraste élevé (noir/blanc/jaune)
- Taille de police ajustable (4 niveaux)
- Police dyslexie (Comic Sans MS)
- Réduction des animations
- Support lecteurs d'écran avec annonces vocales
- Navigation clavier complète (Alt+A, Alt+T, Alt+Q)
- Étiquettes ARIA et conformité WCAG 2.1 niveau AA
Accès : Bouton ♿ dans l'en-tête ou raccourci Alt+A
Vous pouvez désormais profiter d'une interface en mode clair !
Pour activer le mode light :
- Ouvrez les Paramètres de l'application.
- Sélectionnez l'option Mode clair.
💡 Astuce : Vous pouvez basculer à tout moment entre le mode sombre et le mode clair selon vos préférences.
- Voir section "Corrections et changements récents (6.1.16)" ci-dessus.
- Nouveau sélecteur d’emojis intégré : remplacement de emoji-mart par emoji-picker-react, plus compact et adapté à l’encadré, sans débordement sur mobile ou desktop.
- Correction du bug d’affichage du menu emojis (ne déborde plus de l’encadré stylisé, responsive sur tous les écrans).
- Correction de l’ajout d’emoji dans les réactions (plus de undefined, compatibilité assurée avec le nouveau picker).
- Amélioration CSS pour garantir la compatibilité mobile et l’accessibilité du champ de saisie.
- README mis à jour pour refléter ces changements.
- 🎨 Correction des thèmes personnalisés en mode clair : les thèmes CSS personnalisés fonctionnent maintenant parfaitement avec le mode light.
- ⚡ Optimisation des performances : correction de la boucle infinie dans le hook useCustomThemes pour une meilleure stabilité.
- 🔧 Amélioration de l'application des thèmes : logique d'application des thèmes repensée pour une compatibilité maximale.
- 🖍️ Thèmes prédéfinis améliorés : thèmes Rouge Anarchiste, Cyberpunk et Bleu Clair optimisés pour tous les modes.
- Indicateur « en train d’écrire » amélioré : affichage dynamique au-dessus de la zone de saisie, visible en temps réel pour tous les utilisateurs.
- Prévisualisation audio avant envoi : possibilité d’écouter, d’envoyer ou d’annuler un message vocal avant qu’il ne soit transmis.
- Correction des erreurs de typage TypeScript liées à Socket.IO côté client (meilleure compatibilité et stabilité du chat).
- Documentation de la gestion des branches git : conseils pour créer, basculer et pousser correctement les branches de développement.
- Amélioration de la robustesse de la connexion WebSocket/Socket.IO côté client (meilleure gestion des ports et de l’URL de connexion).
- 🎨 Correction majeure des thèmes personnalisés : résolution du problème d'incompatibilité avec le mode clair, les thèmes CSS s'appliquent maintenant correctement sur tous les modes.
- ⚡ Optimisation du hook useCustomThemes : suppression de la boucle infinie causée par les dépendances problématiques dans useEffect.
- 🔧 Amélioration de la logique d'application des thèmes : refactorisation complète pour une meilleure gestion des priorités CSS.
- 🖍️ Thèmes prédéfinis stabilisés : tous les thèmes (Rouge Anarchiste, Cyberpunk, Bleu Clair) fonctionnent parfaitement en mode sombre et clair.
- ♿ Implémentation complète de l'accessibilité : bouton dédié dans l'en-tête, paramètres sauvegardés localement, conformité WCAG 2.1 niveau AA, étiquettes ARIA complètes.
- Support des lecteurs d'écran (NVDA, JAWS, VoiceOver, TalkBack, Orca) avec annonces vocales automatiques.
- Navigation clavier complète avec raccourcis globaux et focus visible renforcé.
- 🖍️ Thèmes personnalisables : interface pour créer, modifier et appliquer des thèmes CSS personnalisés avec thèmes prédéfinis (Rouge Anarchiste, Cyberpunk).
- Ajout de la prévisualisation audio dans la zone de saisie : l’utilisateur peut écouter son message vocal avant de l’envoyer ou de l’annuler.
- Affichage de l’indicateur « en train d’écrire » au-dessus de la zone de saisie, visible par tous les participants.
- Correction temporaire du typage du socket côté client pour éviter les erreurs TypeScript bloquantes.
- Conseils et corrections sur la gestion des branches git (création, push, résolution d’erreurs de référence).
- Correction de la configuration de l’URL Socket.IO côté client pour garantir la connexion au bon serveur backend.
- Modification : Seuls les messages texte peuvent être modifiés après envoi.
- Suppression : Tous les types de messages peuvent être supprimés par leur auteur.
- Menu contextuel : Accessible par clic droit ou appui long, il permet de répondre, modifier (texte uniquement) ou supprimer un message.
- Expérience mobile : Le menu contextuel est adapté au mobile (taille réduite, pas de scroll inutile).
- Messages non modifiables : Les messages audio et images ne peuvent pas être modifiés pour garantir l'intégrité des fichiers partagés.
-
😀 Support Complet des Emojis
- Sélecteur d'emojis intuitif
- Catégories organisées
- Recherche rapide
- Thème sombre intégré
-
📎 Partage de Fichiers
- Support des images
- Vérification de taille
- Prévisualisation intégrée
- Aperçu en grand des images envoyées : cliquez sur une image pour l'afficher en plein écran (zoom)
-
Chiffrement de bout en bout (E2EE) sur tous les navigateurs et appareils : vos messages ne sont jamais envoyés en clair, même sur navigateurs anciens (fallback JS crypto-js si besoin).
-
Aucune donnée en clair n’est jamais transmise au serveur.
-
Un seul projet, un seul dépôt : frontend (React) et backend (Node.js/Express/Socket.io) sont réunis dans ce même dépôt pour une autogestion et une simplicité maximale.
- Guide d'installation
- Guide d'utilisation
- FAQ
- Guide de contribution
- Relais d'anonymat (proxy, Tor, VPN)
- 🚀 Script d’auto-hébergement (HTTPS, Tor, .onion personnalisé)
- 🗑️ Script de désinstallation automatique
- ⚙️ Script de gestion de l’application
- 🗂️ Script centralisé (menu tout-en-un)
- 🖥️ Script de compilation de la version graphique (GUI)
- Désinstallation ultra-simple (débutant·e)
- Auto-hébergement avancé (serveur, HTTPS, Tor)
Le projet Liberchat dispose d’un wiki complet pour l’installation, l’auto-hébergement, la gestion, la désinstallation et la contribution, en version terminal (CLI) ou graphique (GUI).
➡️ Accès direct au wiki :
- Wiki Liberchat (Home)
- Guide d’installation
- Guide d’utilisation
- FAQ
- Contribution
- Auto-hébergement (HTTPS, Tor, .onion)
- Désinstallation
- Gestion de l’application
- Menu centralisé
- Interface graphique (GUI)
Le wiki est accessible dans le dossier docs/ du dépôt ou en ligne sur GitHub.
# 1. Installez les dépendances
npm install
# 2. Lancez en mode développement
npm run dev- Node.js (v14+)
- npm ou yarn
- Un navigateur moderne
- Variables d'Environnement
NODE_ENV=production
PORT=3000- Configuration Render.com
Build Command: npm install --production=false && npm run build
Start Command: npm start-
Définis la clé de chiffrement
- Saisis un mot de passe fort (ou laisse vide pour générer une clé aléatoire).
- Partage cette clé avec tes camarades (copie/colle).
- Tous les membres doivent utiliser exactement la même clé pour lire les messages.
- Tous les membres doivent utiliser exactement la même clé pour lire les messages.
-
Accède à l’application
- Ouvre ton navigateur sur l’URL fournie par l’administrateur (ex : https://liberchat-3-0-1.onrender.com ou http://localhost:5173).
-
Choisis un nom d'utilisateur
- Entre un pseudo unique pour rejoindre le salon.
-
Commence à chatter !
- Envoie des messages, des fichiers, des emojis…
- Profite du chiffrement de bout en bout.
- Pour activer le mode light, rendez-vous dans les paramètres et sélectionnez "Mode clair".
« Le code appartient à la communauté. Rejoins-nous, propose, améliore, partage ! »
Nous adorons les contributions collectives ! Voici comment participer :
- 🔧 Crée une branche pour ta fonctionnalité (
git checkout -b feature/maFonctionMilitante) - 💫 Committe tes changements (
git commit -m 'Ajout de ma fonctionnalité') - 🚀 Pousse vers la branche (
git push origin feature/maFonctionMilitante) - 🎉 Ouvre une Pull Request (PR) — tout le monde peut relire et discuter
Aucune contribution n’est trop petite, tout le monde est bienvenu·e !
Distribué sous la licence MIT, avec préambule militant. Voir LICENSE pour plus d'informations.
Un script automatisé est fourni pour installer et configurer facilement Liberchat sur votre propre serveur (HTTPS, Nginx/Apache, ou Tor .onion personnalisé).
➡️ Voir la documentation détaillée : docs/auto_hebergement.md
Pour une prise en main rapide, consultez le guide pas à pas pour novice : 👉 docs/Guide_novice.md


