16 Punkte von GN⁺ 2024-12-19 | 4 Kommentare | Auf WhatsApp teilen
  • Ergo ist ein moderner IRC-Server, geschrieben in Go, und hieß früher Oragono
  • Zentrale Designprinzipien: einfache Konfiguration und Nutzung, Integration von ircd und Service-Framework, integrierte Bouncer-Funktion, Unterstützung für IRCv3 sowie hohe Anpassbarkeit über YAML-Konfigurationsdateien
  • Ergo ist ein Fork des Ergonomadic IRC Daemon

Funktionen

  • Integrierte Services: NickServ für Benutzerkonten, ChanServ für die Kanalregistrierung und HostServ für Vanity-Hosts.
  • Bouncer-Funktion: Speicherung und Wiedergabe des Verlaufs, mehrere Clients können denselben Nickname verwenden.
  • TLS/SSL-Unterstützung, einschließlich Unterstützung für Client-Zertifikate.
  • IRCv3-Unterstützung.
  • Verwendung von YAML-Konfigurationsdateien.
  • Live-Aktualisierung der Serverkonfiguration und der TLS-Zertifikate möglich.
  • SASL-Authentifizierung und LDAP-Unterstützung.
  • Unterstützung für mehrere Sprachen sowie Festlegung einer Standardsprache für das Netzwerk.
  • Optionale Unterstützung für UTF-8-Nicks und Kanalnamen.
  • Erweiterte Sicherheits- und Datenschutzfunktionen.
  • Erweiterbares Berechtigungssystem für IRC-Operatoren.
  • ident-Abfrage für Benutzernamen.
  • Automatisierte Begrenzung von Client-Verbindungen.
  • Mit bcrypt gespeicherte Passwörter.
  • Integrierte Sperrfunktion über das UBAN-System.
  • Schwerpunkt auf spezifikationskonformer Entwicklung.

Schnellstartanleitung

  • Die neueste Release-Version herunterladen, entpacken, die Konfigurationsdatei anpassen und anschließend den Server starten
  • Für Arch Linux AUR und Gentoo Linux werden Ergo-Pakete gepflegt.
  • Ein Dockerfile und Beispielrezepte für docker-compose werden bereitgestellt
  • Aus dem Quellcode bauen
    • Die neueste Go-Distribution wird benötigt; nach dem Checkout des gewünschten Branches oder Tags kann mit dem Befehl make gebaut werden.

Konfiguration

  • Die Standardkonfigurationsdatei default.yaml erläutert die Bedeutung jeder Option und weist auf Änderungen hin.
  • Logs werden standardmäßig nur an stderr ausgegeben, können aber auch in Dateien geschrieben oder mit systemd an das System-Journal gesendet werden.

Passwörter

  • Passwörter werden mit bcrypt gespeichert; mit dem Unterbefehl genpasswd kann eine verschlüsselte Zeichenfolge erzeugt werden.

Nicknames und Kanalregistrierung

  • Über Benutzerkonten können mehrere Clients denselben Nickname verwenden, und über NickServ kann ein Nickname einem Konto zugeordnet werden.
  • Nach der Registrierung eines Nicknames kann ein Kanal registriert werden.

4 Kommentare

 
xguru 2024-12-19

Je nach Einsatzzweck können Slack oder Discord, für die man Konten braucht, etwas belastend sein; da auch Web-Clients gut unterstützt werden, würde ich es gern einmal einführen.

 
ifmkl 2024-12-20

Oh, das klingt wirklich nach einer Menge Spaß … Bei der Arbeit entsteht damit wohl noch ein weiterer Kanal zum Nichtstun …

 
bbulbum 2024-12-19

Oh … ein GeekNews-IRC-Kanal wäre bestimmt lustig.

 
GN⁺ 2024-12-19
Hacker-News-Kommentare
  • Ich nutze Ergo seit dem letzten Jahr für Chats mit Freunden und Familie. Es ist leicht zu hosten, hat geringe Ressourcenanforderungen und bietet ein Protokoll sowie eine Codebasis, die leicht zu verstehen und zu debuggen sind

    • Die Unterstützung für den v3-Chatverlauf und die Always-on-Multiclient-Funktion sorgen für ein modernes Chat-Erlebnis
    • Dank der integrierten WebSocket-Unterstützung lassen sich Web-Clients anbieten
  • IRC wird oft romantisiert, aber bei der Arbeit mit der Protokollspezifikation verursacht das unstrukturierte Nachrichtenformat Probleme

    • Jede Implementierung führt eigene Besonderheiten und Abwandlungen ein, was zu zahllosen Edge Cases und komplexem Parsing-Code führt
    • Ich denke, wir brauchen ein modernes und einfaches Chat-Protokoll
  • Es ist schön zu sehen, dass es neben Slack und Discord verschiedene Alternativen gibt

    • Ich habe mich für Matrix für Familie und Firma entschieden und wusste nichts von der „Always-on“-Funktion von IRC
  • Ich frage mich, ob Ergo sich mit anderen IRC-Servern verbinden kann. Ich würde es gern mit einem bestehenden ngircd verbinden

  • Es ist ein guter Zeitpunkt, den Chat-Betrieb On-Premises zu holen. Befehle und Chat-Logs sind nützlich

  • Ich hoffe, dass es Software wie Slack ersetzen kann

  • Vor einem Jahr habe ich für Freunde einen Server namens Oragono genutzt und empfehle ihn

  • Ich frage mich, ob man Webhooks an einen bestimmten Kanal senden kann

  • Das Fehlen von Chatverlauf/Backlog bei IRC wird oft erwähnt, aber ich denke, dass Backlogs für Communities eher eine Anti-Funktion sind

    • Ohne serverseitigen Backlog sind Chats vergänglich, und wichtige Inhalte müssen an anderer Stelle gespeichert werden, um sie zu bewahren