echoIRCd

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#

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.

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.

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:

cloak { key "a-long-random-secret"; }

Applying changes#

Validate, then rehash the running server — no restart required:

echoircd checkconfig echoircd.conf
echoircd rehash echoircd.conf         # sends SIGHUP

See the shipped echoircd.conf.example for every available option.