16 points par GN⁺ 2024-12-19 | 4 commentaires | Partager sur WhatsApp
  • 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

 
xguru 2024-12-19

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.

 
ifmkl 2024-12-20

Oh, ça a l’air vraiment amusant... Au bureau, un nouveau canal pour glander vient encore de voir le jour...

 
bbulbum 2024-12-19

Oh… ce serait amusant si un canal IRC GeekNews voyait le jour.

 
GN⁺ 2024-12-19
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

    • La prise en charge de l’historique des discussions v3 et la fonctionnalité multiclient toujours active offrent une expérience de chat moderne
    • La prise en charge intégrée des WebSockets permet de proposer un client web
  • 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

    • Chaque implémentation introduit ses propres particularités et variantes, ce qui crée d’innombrables cas limites et du code de parsing complexe
    • Je pense qu’il faut un protocole de chat moderne et simple
  • C’est bien de voir qu’il existe diverses alternatives à Slack et Discord

    • J’ai choisi Matrix pour ma famille et mon entreprise, et je ne connaissais pas la fonctionnalité « toujours active » d’IRC
  • 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é

    • Sans backlog côté serveur, les discussions sont éphémères, et il faut conserver l’important ailleurs pour le préserver