echo services
A companion services package that links to echoIRCd over S2S. It is not part of the daemon — echoIRCd is a pure ircd; the services run as their own program.
Linked, not built in
echoIRCd is an IRC daemon and nothing more. Accounts, nickname registration and channel ownership are handled by echo services — a separate Rust program, from its own repository, that connects to the network as a linked services server.
The split is deliberate: the daemon carries only the account and SASL interface (the SASL relay, the account extension, and U-lined service commands); the services package holds the accounts, the logic, and the data.
The services
NickServ
Register and protect your nick — grouped nicks, certificates, public keys, vhosts, and profiles.
ChanServ
Channel founders and access lists, auto-op, akick, and topic & mode locks.
OperServ
Network administration — akills, sessions, and staff tooling.
MemoServ
Leave messages for accounts while they're offline.
How it fits together
- echo services connects to echoIRCd over the server link — the same server-to-server protocol servers use between each other.
- The daemon U-lines the services server and names it as the SASL server, so its privileged commands and SASL relay are trusted.
- SASL is relayed from the daemon to services mechanism-agnostically, so new mechanisms (like ECDSA) work with no daemon changes.
- State is event-sourced: every change is an appended event, replayed to rebuild the database.
Run & source
echo services is its own binary, with its own configuration:
echo config.toml
Source: git.devtronic.pro/echo/echo. See the docs on Services and Server links.
Register your nick
/msg NickServ REGISTER <password> <email>