echoIRCd

echo services

echo services is a Rust services package that links to the echoIRCd daemon over the S2S protocol as a linked services server — it is not built into the daemon. State is event-sourced: every change is an appended event, replayed to rebuild the database.

Running#

echo services is its own binary with its own configuration:

echo config.toml

Only [uplink] and [server] are required; everything else is optional. The daemon must U-line the services server and name it as the SASL server — see Server links. For the full configuration, see Running & config.

The services#

The standard suite comes up by default; the enabled set is controlled by [modules] services.

ServiceRole
NickServRegister and manage your nick/account; log in
ChanServRegister and manage channels, access, modes, topics
OperServNetwork administration, bans/X-lines, SVS commands (operator)
MemoServLeave and read offline messages between accounts
HostServVirtual host (vhost) requests, offers, and assignment
BotServChannel bots that speak, moderate, and auto-respond
GroupServNamed account groups (!group) for access lists
StatServNetwork and per-channel activity statistics
InfoServPublic and operator bulletins / news
ReportServUser abuse reports queued for staff
HelpServUser help-desk ticket queue
DiceServDice-expression rolling and calculation
DictServDICT-protocol dictionary/thesaurus lookups (opt-in)
GameServTurn-based games (tic-tac-toe, Connect Four, chess) with ranked stats
ChanFixRestore ops to a channel's trusted regulars
DebugServInternal diagnostic feed of services activity

The last ten are covered on the other services page. echo services also runs a native anti-abuse engine.

Accounts & SASL#

Registration and login (including key-based ECDSA login) are covered in Accounts & SASL; SASL is relayed from the daemon to services mechanism-agnostically, so new mechanisms work without daemon changes.