docs: full reference for the daemon and echo services (modes, extbans, snomasks, commands, config reference, privileges, CLI, metrics/rpc, per-service pages)

This commit is contained in:
Jean Chevronnet 2026-08-30 21:00:58 +00:00
parent c4836c7dd1
commit d81c07ef01
No known key found for this signature in database
GPG key ID: 439666D63A9477E4
23 changed files with 1685 additions and 84 deletions

View file

@ -1,30 +1,49 @@
# Services
# echo services
echo services is a suite of pseudo-clients that runs as its own program and links to the network
as a services server. State is **event-sourced** — every change is an appended event, replayed to
rebuild the database.
## The services
| Service | Purpose |
| --- | --- |
| **NickServ** | account registration, grouped nicks, certificates, public keys, vhosts, profiles |
| **ChanServ** | channel founders and access, auto-op, akick, topic and mode locks |
| **OperServ** | network administration, akills, session control |
| **MemoServ** | offline messages between accounts |
**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 configured from its own file and connects to the ircd over the server port:
echo services is its own binary with its own configuration:
```sh
echo config.toml
```
On the ircd side, the services server must be U-lined and named as the SASL server — see
[Server links](/docs/linking#services).
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](/docs/linking#services). For the
full configuration, see [Running & config](/docs/services-config).
## The services
The standard suite comes up by default; the enabled set is controlled by `[modules] services`.
| Service | Role |
| --- | --- |
| **[NickServ](/docs/nickserv)** | Register and manage your nick/account; log in |
| **[ChanServ](/docs/chanserv)** | Register and manage channels, access, modes, topics |
| **[OperServ](/docs/operserv)** | Network administration, bans/X-lines, SVS commands (operator) |
| **[MemoServ](/docs/memoserv)** | Leave and read offline messages between accounts |
| **[HostServ](/docs/hostserv)** | Virtual host (vhost) requests, offers, and assignment |
| **[BotServ](/docs/botserv)** | Channel bots that speak, moderate, and auto-respond |
| GroupServ | Named account groups (`!group`) for access lists |
| StatServ | Network and per-channel activity statistics |
| InfoServ | Public and operator bulletins / news |
| ReportServ | User abuse reports queued for staff |
| HelpServ | User help-desk ticket queue |
| DiceServ | Dice-expression rolling and calculation |
| DictServ | DICT-protocol dictionary/thesaurus lookups (opt-in) |
| GameServ | Turn-based games (tic-tac-toe, Connect Four, chess) with ranked stats |
| ChanFix | Restore ops to a channel's trusted regulars |
| DebugServ | Internal diagnostic feed of services activity |
The last ten are covered on the [other services](/docs/other-services) page. echo services also runs a
native [anti-abuse engine](/docs/services-security).
## Accounts & SASL
Registration and login are covered in [Accounts & SASL](/docs/accounts). SASL is relayed from the
daemon to services mechanism-agnostically, so new mechanisms work without daemon changes.
Registration and login (including key-based ECDSA login) are covered in
[Accounts & SASL](/docs/accounts); SASL is relayed from the daemon to services
mechanism-agnostically, so new mechanisms work without daemon changes.