Ergo (formerly known as Oragono) is a modern IRC server written in Go. Its core design principles are:
- Being simple to set up and use
- Combining the features of an ircd, a services framework, and a bouncer (integrated account management, history storage, and bouncer functionality)
- Bleeding-edge IRCv3 support, suitable for use as an IRCv3 reference implementation
- High customizability via a rehashable (i.e., reloadable at runtime) YAML config
Ergo is a fork of the Ergonomadic IRC daemon.
Features:
- integrated services: NickServ for user accounts, ChanServ for channel registration, and HostServ for vanity hosts
- bouncer-like features: storing and replaying history, allowing multiple clients to use the same nickname
- native TLS/SSL support, including support for client certificates
- IRCv3 support
- yaml configuration
- updating server config and TLS certificates on-the-fly (rehashing)
- SASL authentication
- LDAP support
- supports multiple languages (you can also set a default language for your network)
- optional support for UTF-8 nick and channel names with RFC 8265 (PRECIS)
- advanced security and privacy features (support for requiring SASL for all logins, cloaking IPs, and running as a Tor hidden service)
- an extensible privilege system for IRC operators
- ident lookups for usernames
- automated client connection limits
- passwords stored with bcrypt
- UBAN, a unified ban system that can target IPs, networks, masks, and registered accounts (KLINE and DLINE are also supported)
- a focus on developing with specifications