Ergo

Modern IRC server with IRCv3 and bouncer features

Chat & Communication ★ 3.3k stars Medium setup MIT

Ergo, formerly known as Oragono, is a modern IRC server written in Go that combines an IRCd with bouncer-like features. It supports IRCv3, has built-in account management, and stores message history.

Key features

  • Full IRCv3 support
  • Built-in account registration
  • Persistent message history
  • Single binary deployment

Pros & cons

Strengths

  • No external services needed
  • Easy to run

Trade-offs

  • IRC protocol limitations
  • No web UI included

Ergo replaces

Last reviewed Sep 13, 2026 · 807 words

People arrive at Ergo expecting a Slack replacement and leave disappointed, because Ergo is an IRC daemon. Judged as an IRC daemon it is the best one you can run in 2026: a single Go binary, about 30 MB of RAM for a small community, accounts, TLS, and, crucially, message history and always-on presence built in, so you never set up ZNC. Pair it with a web client and you get something a non-IRC person can use from a browser tab. Judged against Matrix or Mattermost, it loses on media, threads and mobile push, and you should pick it knowing that.

The built-in bouncer is the reason to choose it

Classic IRC forgets you the moment you disconnect. The old fix was a bouncer, a second server that stays connected on your behalf, which meant running and securing ZNC alongside the ircd. Ergo folds that in. A registered account can be marked always-on, so your nick stays in channels while your laptop sleeps, and the same account can be logged in from 3 devices at once with each one seeing the same conversation. Message history is stored server-side and replayed to clients that speak the IRCv3 chathistory extension, with a configurable retention window. For a private community of 20 people this is exactly the set of features that used to need 3 pieces of software.

One binary, one YAML file

Installation is short enough to show in full:

wget https://github.com/ergochat/ergo/releases/latest/download/ergo-linux-x86_64.tar.gz
tar xzf ergo-linux-x86_64.tar.gz && cd ergo-linux-x86_64
cp default.yaml ircd.yaml
./ergo mkcerts
./ergo run --conf ircd.yaml

Everything lives in ircd.yaml. The defaults listen on 6667 (plain, LAN only unless you change it) and 6697 (TLS). mkcerts makes a self-signed pair to get you started; replace it with a real certificate from your reverse proxy or from certbot, since IRC clients are fussy about untrusted certs. The Docker image ghcr.io/ergochat/ergo does the same thing with the config mounted at /ircd/ircd.yaml. Datastore is an embedded key-value file by default, with MySQL as an option for history at scale. That is the entire dependency list: no Postgres, no Redis, no external identity service.

Accounts, SASL and the keys you must set

Register from any client with /msg NickServ REGISTER yourpassword, then set SASL in the client so login is automatic. Two settings in ircd.yaml deserve attention before you invite anyone. First, accounts.registration.enabled: leave it on while your people sign up, then turn it off or require an invite token, because an open registration IRC server on the public internet collects spam bots within days. Second, server.password or the ip-cloaking block if you want to hide members' IP addresses from each other, which for a community server you almost always do. Ergo's docs at ergo.chat cover both in a manual that is unusually readable for an ircd.

There is no web UI, so pick one

Ergo ships a websocket listener but no client. Two sensible choices, both in the communication category. Gamja is a tiny static web client built specifically for IRCv3 servers like Ergo; drop the files behind your reverse proxy, point it at Ergo's websocket, and users get history and always-on with zero extra server processes. The Lounge is heavier (a Node service) and has its own bouncer logic, which overlaps with Ergo's, but it is friendlier for people who have never seen IRC and supports file upload previews. My pick for an Ergo-first deployment is Gamja; The Lounge if the audience is mostly non-technical.

Where it loses to Matrix

Voice, video, file storage, end-to-end encryption, threads, reactions with history, and mobile apps with push notifications are all either absent or bolted on. IRC messages are lines of text; that is a feature for a developer community and a deal-breaker for a family group chat. If your users are leaving Slack and expect to paste screenshots, run Synapse or Mattermost instead and accept the 10x resource cost. Ergo's honest niche is technical communities, open-source projects, and anyone who already liked IRC and wants it modernised rather than replaced.

What I'd do

Ergo binary under systemd on the smallest VPS you own, TLS certificate from the same certbot job as your other services, registration open for a week then closed, always-on enabled by default for accounts, history retention set to 30 days, and Gamja behind Caddy on a subdomain. That is a complete chat server in under 64 MB and it will keep running unattended for years, which is more than I can say for anything else in this category.

Compare Ergo

25 head-to-head comparisons.

Similar chat & communication apps