Skip to content

Server Settings

config :elixircd,
server: [
name: "My IRC Network",
hostname: "irc.example.com",
password: nil,
motd: File.read("config/motd.txt")
]
OptionTypeDefaultDescription
namestring"Server Example"IRC network name shown in welcome messages
hostnamestring"irc.test"Server hostname used as origin in IRC messages
passwordstring/nilnilServer connection password (nil = no password required)
motdstring/tupleFile.read(...)Message of the Day content

The network name shown in the welcome message:

:server 001 yournick :Welcome to the <name> Internet Relay Chat Network yournick

The server’s visible hostname. This appears as the origin of server-sent messages and in YOURHOST:

:server 002 yournick :Your host is <name>, running version ElixIRCd-X.Y.Z.

If set, clients must send PASS <password> before registration. The connection is rejected with ERR_PASSWDMISMATCH if the password doesn’t match.

password: "mysecretpass" # Requires PASS command
password: nil # No password required (default)

The Message of the Day content. Typically loaded from a file:

motd: File.read("config/motd.txt")

File.read/1 returns {:ok, content} or {:error, reason}. If the file doesn’t exist, MOTD will not be available and clients receive ERR_NOMOTD.

settings: [
case_mapping: :rfc1459,
utf8_only: true
]
OptionTypeDefaultValues
case_mappingatom:rfc1459:rfc1459, :strict_rfc1459, :ascii
utf8_onlybooleantruetrue or false

Controls how nicknames and channel names are compared for equality.

ValueBehavior
:rfc1459`
:strict_rfc1459Only A-Z/a-z equivalences; `
:asciiOnly A-Z/a-z are case-equivalent; no special character rules

Warning: Changing this after the server has users/channels registered may cause inconsistencies. Set before first use.

When true, the server enforces UTF-8 only traffic. The UTF8ONLY capability token is advertised in ISUPPORT. When false, any encoding is accepted.

user: [
inactivity_timeout_ms: 180_000,
max_nick_length: 30,
max_ident_length: 10,
max_realname_length: 50,
max_away_message_length: 200
]
OptionDefaultDescription
inactivity_timeout_ms180_000Idle timeout before disconnection (ms)
max_nick_length30Maximum nickname length
max_ident_length10Maximum ident/username length
max_realname_length50Maximum real name (GECOS) length
max_away_message_length200Maximum away message length
channel: [
channel_prefixes: ["#", "&"],
max_channel_name_length: 64,
channel_join_limits: %{"#" => 20, "&" => 5},
max_list_entries: %{"b" => 100},
max_kick_message_length: 255,
max_modes_per_command: 20,
max_topic_length: 300
]
OptionDefaultDescription
channel_prefixes["#", "&"]Valid channel prefix characters
max_channel_name_length64Max channel name length (excl. prefix)
channel_join_limits%{"#" => 20, "&" => 5}Max channels per prefix per user
max_list_entries%{"b" => 100}Max list mode entries per mode
max_kick_message_length255Max kick message length
max_modes_per_command20Max mode changes per MODE command
max_topic_length300Max channel topic length
admin_info: [
server: "My IRC Network",
location: "Server Location",
organization: "My Organization",
email: "admin@example.com"
]

Returned by the ADMIN command.

ident_service: [
enabled: true,
timeout: 2_000
]
OptionDefaultDescription
enabledtrueEnable RFC 1413 ident lookups
timeout2_000Ident response timeout (ms, max 5000)

When enabled, the server queries the client’s ident daemon (port 113) during connection. The response (if any) overrides the USER-provided ident.