website/content/docs/modules.md

4.6 KiB

Modules

echoIRCd is built module-per-file: each feature lives in its own source module, and most are toggled through the configuration. This is the full set that ships in the tree.

Anti-abuse & access control

Module Provides
connclass Connection classes — match by IP/host/TLS/port, then apply reject / clone-caps / password / modes / queue / flood / ping policy
connflood Refuse connections from an IP opening too many too fast
connectban Z-line an IP range that opens too many connections
conn_waitpong Hold registration until the client PONGs an exact server cookie
flood Per-user message-rate limit (fakelag); opers exempt
dnsbl DNS blocklist checks on connect
reputation Per-address reputation scoring over time; y: extban
securitygroups Named AND-ed user sets; g: extban
antirandom Score drone-like random nick/ident/realname
antimixedutf8 Block mixed-Unicode-script look-alike spam
filter Oper-configured spam/word glob filters
blockamsg Block mass /amsg and /ame
solvemsg Un-vouched user answers an arithmetic question before PMs deliver
recaptcha / cloudflare_challenge Registration human-verification gates
autodrop Silently drop HTTP-scanner connections
restrictmsg / restrictcommands / restrictchans / denychans / channames Message/command/channel restrictions
dccallow Gate DCC by filename unless the recipient allowed the sender
hashident Replace ident with a stable per-IP HMAC token

Bans & extbans

Module Provides
accountban a: extban (match by account)
realnameban r: extban (match by realname)
serverban s: extban (match by server)
channelban j: extban (match by another channel)
extbanbanlist b: extban (match another channel's ban list)
banredirect +b <mask>$<#channel> bounces a banned user elsewhere
geoip GeoIP + G: country extban, GEOIP, WHOIS geo
asn ASN lookup feeding classes, groups, extbans, WHOIS

Channels & modes

Module Provides
customprefix Reconfigure or add channel prefix tiers
namedmodes PROP — set/query modes by long name
permchannels Persist +P permanent channels across restarts
autoop +w auto-grant a prefix on join
rmode Bulk-remove list-mode entries
hidemode / hidelist Hide mode changes / list entries below a rank

IRCv3 & client features

Module Provides
chathistory draft/chathistory + draft/message-redaction
event_playback draft/event-playback
multiline Server side of draft/multiline
metadata draft/metadata-2
markread draft/read-marker
webpush draft/webpush (RFC 8291/8292)
account_registration draft/account-registration bridged to an HTTP backend
extended_isupport draft/extended-isupport
relaymsg draft/relaymsg
filehost Advertise a file-host + signed upload links
extjwt EXTJWT server-signed identity tokens
irccloudtags Validate IRCCloud client-only tags

Operators & staff

Module Provides
opertypes Oper classes + types (capability bundles)
operlevels Numeric oper level (KILL protection tiers)
operprefix The ! oper channel prefix
ojoin Join a channel as network staff
password_hash Hashed oper passwords + MKPASSWD
globops GLOBOPS broadcast
maphide / hidewhois / hideservices (opers) Hide topology / WHOIS lines / services
tline Gauge a would-be ban's blast radius
customtitle TITLE — claim a WHOIS title/vhost

Cloaking, DNS & identity

Module Provides
cloak Keyed host masking (+x)
ident Optional RFC 1413 ident lookups
jwt HS256 JWS/JWT signer shared by captcha / challenge / extjwt

Observability & integration

Module Provides
metrics Prometheus/OpenMetrics endpoint
rpc JSON-RPC 2.0 control interface (see Metrics & RPC)
syslog / log_json / jsonlog Mirror the log stream to syslog / a JSONL file / per-oper JSON tags
chanlog Mirror oper snotices into a channel
whoisport Show an oper the port a user connected to
showfile / randquote / network_icon / profilelink Serve a file as a command, greet quotes, network icon, WHOIS profile link
securelist Hold /LIST for fresh connections