Ergo
Modern IRC server with IRCv3 and bouncer features
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.
- Ergo vs Mumble
- Ergo vs The Lounge
- Ergo vs WeeChat
- Ergo vs irssi
- Ergo vs Tox
- Ergo vs Nextcloud Talk
- Ergo vs Spacebar
- Ergo vs InspIRCd
- Ergo vs KiwiIRC
- Ergo vs Glowing Bear
- Ergo vs Bonfire
- Ergo vs Quassel IRC
- Ergo vs Mumble Web
- Ergo vs ngIRCd
- Ergo vs Miaou
- Ergo vs UnrealIRCd
- Ergo vs Hookshot
- Ergo vs Atheme IRC Services
- Ergo vs Anope
- Ergo vs Comm
- Ergo vs Solanum
- Ergo vs Charybdis IRCd
- Ergo vs ircd-hybrid
- Ergo vs ircu2
- Ergo vs Libervia
Similar chat & communication apps
Chatwoot
Chat & CommunicationOpen-source customer engagement and live-chat platform
Replaces Intercom, Zendesk
SimpleX Chat
Chat & CommunicationPrivate messenger without any user identifiers
Replaces Signal, WhatsApp
Etherpad
Chat & CommunicationReal-time collaborative document editor
Replaces Google Docs
Centrifugo
Chat & CommunicationScalable real-time messaging server for apps and websites
Replaces Pusher, Firebase Realtime Database
Screego
Chat & CommunicationScreen sharing for developers
Typebot
Chat & CommunicationConversational app builder (alternative to Typeform and Landbot)