echoIRCd

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.

IRC client echoIRCd↔ S2S ↔ echo services

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>

Accounts & SASL