Reading — step 1 of 5
Read
~1 min readModern IRC
Production IRC
Operating an IRC network:
Software stack:
- Ergo (modern, Go, single-binary, includes services).
- InspIRCd + Anope/Atheme services.
- Solanum (used by Libera.Chat, Charybdis fork).
- UnrealIRCd (feature-heavy, common for small networks).
Services:
- NickServ: account management.
- ChanServ: channel registration + ACLs.
- MemoServ: offline messages.
- HostServ: vhosts (cloak hostnames).
- BotServ: per-channel bots.
- OperServ: operator tools.
Anti-abuse:
- Connection throttling (max connections per IP, max nick changes).
- SASL required for trusted networks (no anonymous connections).
- Cloaks: hide user's real hostname (privacy + ban evasion mitigation).
- CAPTCHA-style verification on suspicious connections.
Federation:
- Inter-server links via SSL.
- Configured manually (servers know peers).
- Auth via shared password or TLS cert.
- Topology: tree (no loops). Loops = duplicate messages.
Monitoring:
- Connection counts.
- Channel counts.
- Lag per server-pair.
- Spam attack detection (automated KLINEs).
Privacy:
- Cloaks for users (hide IP).
- TLS for client connections.
- No persistent message storage by default.
- Server logs (if enabled): audit trail; avoid logging private content.
Migration:
- Modern networks bridge to Matrix for persistent + mobile.
- Discord/Slack siphon casual users.
- IRC remains for OSS, technical communities.
Alternatives to building IRC from scratch:
- Matrix (Synapse, Dendrite, Conduit).
- XMPP (Prosody, ejabberd).
- Mattermost / Rocket.Chat (self-hosted Slack).
- Zulip (threaded chat for teams).
When IRC fits:
- Lightweight infrastructure.
- Open, federated.
- Bot-friendly.
- Existing community on IRC.
When it doesn't:
- Mobile-first.
- Rich content (images, embeds).
- Persistent history natively.
- Compliance / audit needs.
Discussion
Ask a question, share an insight, or help someone who’s stuck.
Sign in to post a comment or reply.
Loading…