For Operators
1. Disable server-side message history. Ergo stores message history in ircd.db by default. Disable it in ircd.yaml:
history:
enabled: false
If you keep history enabled, set aggressive limits: short retention windows (hours, not days), low message counts. If you have been running Ergo without configuring this, wipe the database.
2. Disable always-on clients. Ergo's always-on feature keeps a user's nick present after they disconnect, causing messages to accumulate in server-side history. For high-privacy setups, disable this by policy.
3. Require SASL and disable self-registration together. Enabling require-sasl without disabling registration means anyone can still self-register and connect. Set both:
accounts:
require-sasl:
enabled: true
registration:
enabled: false
Create user accounts manually with /msg NickServ SAREGISTER <username> <password> from an oper session.
4. Enable IP cloaking with full privacy settings. Setting num-bits: 0 produces a cloak entirely unrelated to the user's IP, making the original address impossible to recover:
server:
ip-cloaking:
enabled: true
enabled-for-always-on: true
netname: "irc"
cidr-len-ipv4: 32
cidr-len-ipv6: 64
num-bits: 0
5. Run Ergo as a non-root user with systemd hardening. A hardened service unit prevents a compromised Ergo process from reading your home directory, escalating privileges, or writing outside its data directory:
NoNewPrivileges=yes
PrivateTmp=yes
ProtectSystem=strict
ProtectHome=yes