Repolode
ergochat

ergochat/ergo

A modern IRC server written in Go, combining an ircd, a services framework, and a bouncer in one daemon.

Stars
3,357
Forks
249
Open issues
213
Last commit
6 days ago

What is it?

Ergo is an IRC server (ircd) written in Go. It bundles account management through NickServ and ChanServ, stores and replays message history, and lets multiple clients share one nickname, so it works as both a chat server and a bouncer. It implements IRCv3 extensively and is designed to serve as an IRCv3 reference implementation.

Setup is intended to be simple: copy the default YAML config, generate TLS certificates with the built-in command, and run the binary. Configuration is reloadable at runtime (rehashing), including TLS certificates. Passwords are stored with bcrypt, and the server supports SASL, client certificates, IP cloaking, and running as a Tor hidden service.

Builds are available as release binaries, Docker images, and from source with vendored dependencies.

Key features

  • 01Built-in NickServ, ChanServ and HostServ for accounts, channel registration and vanity hosts
  • 02Stores and replays message history, and allows multiple clients to share one nickname
  • 03Native TLS support, including client certificate authentication
  • 04Extensive IRCv3 support and SASL authentication
  • 05Runtime reloading of YAML config and TLS certificates
  • 06Optional LDAP integration and a unified ban system (UBAN)

Use cases

  • Running a private or community IRC network with registered accounts and channels
  • Hosting an IRC server that keeps history so users can reconnect without losing messages
  • Serving as a reference server when testing IRCv3 client features
  • Operating an IRC network that is reachable over Tor

Quick start

  1. 1

    Download the latest release from the releases page

  2. 2

    Copy the default config to ircd.yaml

    cp default.yaml ircd.yaml
  3. 3

    Generate TLS certificates

    ./ergo mkcerts
  4. 4

    Run the server

    ./ergo run

Things to know

  • The quick start relies on a downloaded release, so you must edit the config yourself before running.
  • Production use requires extra work such as valid TLS certificates and systemd setup, as the README notes.

In collections

Topics

#irc#ircd#ircv3#chat-server#go#self-hosted#sasl#bouncer#daemon#irc-daemon

FAQ

What is ergo?
A modern IRC server written in Go, combining an ircd, a services framework, and a bouncer in one daemon. Ergo is an IRC server (ircd) written in Go. It bundles account management through NickServ and ChanServ, stores and replays message history, and lets multiple clients share one nickname, so it works as both a chat server and a bouncer. It implements IRCv3 extensively and is designed to serve as an IRCv3 reference implementation.
Is ergo free to use? What license does it have?
ergo is open source under the MIT license. Check the license terms before using it in commercial products.
Is ergo still maintained?
Actively maintained. The last commit to ergo was on Nov 1, 2026.
What can I use ergo for?
Running a private or community IRC network with registered accounts and channels Hosting an IRC server that keeps history so users can reconnect without losing messages Serving as a reference server when testing IRCv3 client features Operating an IRC network that is reachable over Tor
How do I install ergo?
Download the latest release from the releases page Copy the default config to ircd.yaml: cp default.yaml ircd.yaml Generate TLS certificates: ./ergo mkcerts Run the server: ./ergo run
Where can I get ergo?
The source code and installation instructions are on GitHub: https://github.com/ergochat/ergo

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects