4.1 KiB
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 |
| GitHub | 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
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)
server:
name: irc.example.com
listen:
- ":6667"
- ":6697"
- ":5222"
- ":5269"
⚙️ Configuration Initiale
- Choisir un nom de serveur XMPP (souvent identique au hostname).
- Configurer TLS : Ergo supporte Let's Encrypt nativement via la config, sinon fournir
cert.pem+key.pem. - Créer un compte administrateur avec
ergo mkpasswdpuisOPER. - DNS :
SRV _xmpp-client._tcpetSRV _xmpp-server._tcppour le discovery standard. - Clients IRC : se connecter à
irc.example.com:6697avec TLS, le nick et le password. - 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
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