62 lines
1.6 KiB
Markdown
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.
|