- 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
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.
Oh, das klingt wirklich nach einer Menge Spaß … Bei der Arbeit entsteht damit wohl noch ein weiterer Kanal zum Nichtstun …
Oh … ein GeekNews-IRC-Kanal wäre bestimmt lustig.
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
IRC wird oft romantisiert, aber bei der Arbeit mit der Protokollspezifikation verursacht das unstrukturierte Nachrichtenformat Probleme
Es ist schön zu sehen, dass es neben Slack und Discord verschiedene Alternativen gibt
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