- Ergo est un serveur IRC moderne écrit en Go, anciennement appelé Oragono
- Principes de conception principaux : simplicité de configuration et d’utilisation, intégration de l’ircd et du framework de services, intégration des fonctionnalités de bouncer, prise en charge d’IRCv3, personnalisation poussée via un fichier de configuration YAML
- Ergo est un fork du démon IRC Ergonomadic
Fonctionnalités
- Services intégrés : fournit NickServ pour les comptes utilisateurs, ChanServ pour l’enregistrement des canaux et HostServ pour les vanity hosts.
- Fonctionnalités de bouncer : stockage et relecture de l’historique, plusieurs clients peuvent utiliser le même pseudonyme.
- Prise en charge de TLS/SSL, y compris des certificats clients.
- Prise en charge d’IRCv3.
- Utilise un fichier de configuration YAML.
- Mise à jour à chaud possible de la configuration du serveur et des certificats TLS.
- Prise en charge de l’authentification SASL et de LDAP.
- Prise en charge de plusieurs langues et possibilité de définir la langue par défaut du réseau.
- Option de prise en charge des pseudonymes et noms de canaux en UTF-8.
- Fournit des fonctions avancées de sécurité et de protection de la vie privée.
- Système de permissions extensible pour les opérateurs IRC.
- Requêtes ident pour les noms d’utilisateur.
- Limitation automatisée des connexions client.
- Mots de passe stockés avec bcrypt.
- Fonction de bannissement unifiée via le système
UBAN.
- Accent mis sur un développement conforme aux spécifications.
Guide de démarrage rapide
- Il suffit de télécharger la dernière release, de l’extraire, de modifier le fichier de configuration, puis de lancer le serveur.
- Des paquets Ergo sont maintenus pour Arch Linux AUR et Gentoo Linux.
- Un Dockerfile et des recettes d’exemple pour docker-compose sont fournis.
- Compiler depuis les sources
- La dernière distribution de Go est nécessaire ; après avoir checkout la branche ou le tag souhaité, il est possible de compiler avec la commande
make.
Configuration
- Le fichier de configuration par défaut
default.yaml explique la signification de chaque option ainsi que les modifications.
- Par défaut, les logs sont envoyés uniquement vers stderr ; ils peuvent aussi être envoyés vers un fichier ou vers le journal système via systemd.
Mots de passe
- Les mots de passe sont stockés avec bcrypt, et la sous-commande
genpasswd permet de générer une chaîne chiffrée.
Enregistrement des pseudonymes et des canaux
- Grâce aux comptes utilisateurs, plusieurs clients peuvent utiliser le même pseudonyme, et il est possible d’enregistrer un pseudonyme sur un compte via NickServ.
- Une fois le pseudonyme enregistré, il est possible d’enregistrer un canal.
4 commentaires
Selon les usages, Slack ou Discord, qui nécessitent des comptes, peuvent parfois être contraignants ; comme le support du client web est aussi bon, j’aimerais bien l’essayer.
Oh, ça a l’air vraiment amusant... Au bureau, un nouveau canal pour glander vient encore de voir le jour...
Oh… ce serait amusant si un canal IRC GeekNews voyait le jour.
Discussion sur Hacker News
J’utilise Ergo depuis un an pour discuter avec mes amis et ma famille. C’est facile à héberger, peu gourmand en ressources, et il offre un protocole ainsi qu’une base de code faciles à comprendre et à déboguer
IRC est souvent vu avec romantisme, mais lorsqu’on travaille avec les spécifications du protocole, le format de message non structuré pose problème
C’est bien de voir qu’il existe diverses alternatives à Slack et Discord
Je me demande si Ergo peut se connecter à d’autres serveurs IRC. J’aimerais essayer de le relier à un ngircd existant
C’est le bon moment pour rapatrier l’exploitation du chat en on-premise. Les commandes et les journaux de chat sont utiles
J’espère qu’il remplacera des logiciels comme Slack
Il y a un an, j’ai utilisé un serveur nommé Oragono pour mes amis, et je le recommande
Je me demande s’il est possible d’envoyer des webhooks vers un canal spécifique
On mentionne souvent le manque d’historique/backlog sur IRC, mais je pense que, pour une communauté, le backlog est une anti-fonctionnalité