website/content/docs/configuration.md

62 lines
1.6 KiB
Markdown

# Configuration
echoIRCd is configured from a single file (`echoircd.conf` by default). The format is a set of
**blocks** made of `key value;` fields.
> Inline `#` comments are **not** stripped from a value — keep active lines to bare values and put
> comments on their own line.
## Format
```ini
network "echoiRCd";
sid "0AA";
listen { ip "[::]"; port 6697; tls yes; } # dual-stack v4 + v6
```
## Listeners
Each `listen` block opens one port. `tls yes` makes it a direct-TLS port, `wss yes` a
WebSocket-over-TLS port, and `type server` a server-to-server port.
```ini
listen { ip "[::]"; port 6667; } # plaintext clients
listen { ip "[::]"; port 6697; tls yes; } # direct-TLS clients
listen { ip "[::]"; port 7799; wss yes; } # WebSocket (wss)
listen { ip "[::]"; port 7700; type server; } # server links
```
## TLS
Point the `tls` block at a certificate and private key. Both the OpenSSL and rustls backends are
available, and certificates are re-read on rehash. Per-host certificates can be supplied with
repeatable `sni` entries.
```ini
tls {
cert "/etc/echoircd/tls/cert.pem";
key "/etc/echoircd/tls/key.pem";
backend openssl; # or: rustls
sni "irc.example.net ./tls/example.crt ./tls/example.key";
}
```
## Cloaking
Set a secret `cloak` key to enable host masking:
```ini
cloak { key "a-long-random-secret"; }
```
## Applying changes
Validate, then rehash the running server — no restart required:
```sh
echoircd checkconfig echoircd.conf
echoircd rehash echoircd.conf # sends SIGHUP
```
See the shipped `echoircd.conf.example` for every available option.