--- title: Ergo created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, messaging, xmpp, irc, federation, go, moderne, multi-protocole] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Messaging, https://github.com/ergochat/ergo, https://ergo.chat/] --- # 💬 Ergo > **Le serveur XMPP moderne Ă©crit en Go**, qui fait aussi office de **pont IRC** natif : une seule instance, deux protocoles de messagerie, et une configuration Go simple Ă  maintenir. ## 📋 Informations GĂ©nĂ©rales | Champ | Valeur | | :--- | :--- | | **Site web** | [ergo.chat](https://ergo.chat/) | | **GitHub** | [ergochat/ergo](https://github.com/ergochat/ergo) | | **Licence** | MIT | | **Langage** | Go | | **Étoiles GitHub** | 3.2k ⭐ | | **CatĂ©gorie** | Messaging (Serveur XMPP/IRC) | ## 📝 Description **Ergo** (anciennement **Oragono**) est un **serveur XMPP moderne Ă©crit en Go**, conçu comme une alternative plus lĂ©gĂšre et plus facile Ă  configurer que **Prosody** ou **ejabberd**. Son **originalitĂ© majeure** est de gĂ©rer **deux protocoles simultanĂ©ment** : **XMPP** (Jabber) pour les clients modernes (Converse.js, Gajim, Dino, Conversations) **et IRC** pour les utilisateurs de clients historiques (The Lounge, WeeChat, Irssi). ConcrĂštement, le mĂȘme binaire Ergo Ă©coute sur le port **5222** (XMPP client), **5269** (XMPP federation), **6697** (IRC TLS) et Ă©ventuellement **6667** (IRC plain). Les utilisateurs IRC et XMPP partagent les **mĂȘmes comptes et les mĂȘmes salons** : un salon XMPP est accessible depuis un client IRC, et inversement. C'est une fonctionnalitĂ© unique qui simplifie Ă©normĂ©ment la migration d'une communautĂ© IRC vers XMPP. L'administration se fait en Go pur, avec un fichier **ergo.yml** lisible, et un systĂšme d'**extensions** en Go (chiffrement, IRC bouncer, etc.). Le projet est maintenu par **Jeremy Latt** (crĂ©ateur de Discord.py), la documentation est claire, et la communautĂ© est dynamique. ## 🚀 Installation ### Option recommandĂ©e : Docker ```yaml services: ergo: image: ghcr.io/ergochat/ergo:latest container_name: ergo restart: unless-stopped ports: - "5222:5222" # XMPP client - "5269:5269" # XMPP federation (s2s) - "6667:6667" # IRC plain (optionnel) - "6697:6697" # IRC TLS volumes: - ergo_data:/ircd volumes: ergo_data: ``` ### Fichier de configuration minimal (`ergo.yml`) ```yaml server: name: irc.example.com listen: - ":6667" - ":6697" - ":5222" - ":5269" ``` ## ⚙ Configuration Initiale 1. **Choisir un nom de serveur** XMPP (souvent identique au hostname). 2. **Configurer TLS** : Ergo supporte **Let's Encrypt** nativement via la config, sinon fournir `cert.pem` + `key.pem`. 3. **CrĂ©er un compte administrateur** avec `ergo mkpasswd` puis `OPER`. 4. **DNS** : `SRV _xmpp-client._tcp` et `SRV _xmpp-server._tcp` pour le discovery standard. 5. **Clients IRC** : se connecter Ă  `irc.example.com:6697` avec TLS, le **nick** et le **password**. 6. **Clients XMPP** : utiliser n'importe quel client XMPP, s'enregistrer (inscription in-band). ## 🔄 Alternatives - **Prosody** — Serveur XMPP le plus populaire, en Lua - **ejabberd** — Serveur XMPP historique, en Erlang - **InspIRCd** — Serveur IRC moderne, Ă  coupler avec Prosody - **UnrealIRCd** — Serveur IRC rĂ©fĂ©rence - [[app-synapse]] — Matrix, philosophie diffĂ©rente ## 🔐 SĂ©curitĂ© - ✅ Support natif **Let's Encrypt** (SNI, ACME) - ✅ Authentification SCRAM-SHA-1/256, plain, cert - ✅ **FĂ©dĂ©ration XMPP** authentifiĂ©e (PKI) - ⚠ **SASL EXTERNAL** recommandĂ© pour la sĂ©curitĂ© maximale - ⚠ Ne pas exposer **6667** (plain) en production, prĂ©fĂ©rer **6697** (TLS) ## 📚 Ressources - [Site officiel](https://ergo.chat/) - [GitHub ergochat/ergo](https://github.com/ergochat/ergo) - [Documentation](https://ergo.chat/docs/INSTALL.html) - [Manuel de configuration](https://ergo.chat/docs/MANUAL.html) ## Pages LiĂ©es - [[cat-messaging]] — CatĂ©gorie Messaging - [[app-the-lounge]] — Client IRC web Ă  combiner - [[app-converse]] — Client XMPP web Ă  combiner - [[app-traefik]] — Reverse proxy HTTPS - [[securisation-home-lab]] — Hardening