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