Skip to content

Services Configuration

services: [
nickserv: [
enabled: true,
min_password_length: 6,
nick_expire_days: 90,
email_required: false,
wait_register_time: 120,
unverified_expire_days: 1,
regain_reservation_duration: 60,
recover_reservation_duration: 60,
max_access_entries: 10,
settings: [
hide_email: false
]
],
chanserv: [
enabled: true,
min_password_length: 8,
max_registered_channels_per_user: 10,
forbidden_channel_names: [
"#services",
~r/^#opers$/
],
channel_expire_days: 90,
settings: [
entrymsg: nil,
keeptopic: true,
opnotice: true,
peace: false,
private: false,
restricted: false,
secure: false,
fantasy: true,
guard: true,
topiclock: false
]
]
]
OptionDefaultDescription
enabledtrueEnable or disable NickServ
min_password_length6Minimum password length for registration
nick_expire_days90Days until an inactive nick is deleted
email_requiredfalseWhether email is required for registration
wait_register_time120Minimum connection time (seconds) before registering; 0 = disabled
unverified_expire_days1Days until unverified registrations expire; 0 = never
regain_reservation_duration60Seconds a nick is reserved after REGAIN
recover_reservation_duration60Seconds a nick is reserved after RECOVER
max_access_entries10Maximum ACCESS list entries per account

These are the default values for user-configurable settings. Users can change them via /msg NickServ SET.

SettingDefaultUser command
hide_emailfalseSET HIDEMAIL ON/OFF

When email_required: true or when a user provides an email during REGISTER, email verification is required:

  1. The server sends a verification code to the email address
  2. The user must run VERIFY <nick> <code> within unverified_expire_days
  3. If not verified, the registration is automatically deleted

Email delivery uses the configured Bamboo adapter (see the mailer config section).

The RegisteredNickExpiration background job runs periodically and deletes nicks that haven’t been used (logged into) for nick_expire_days. The last_seen_at timestamp is updated whenever the nick is identified.

OptionDefaultDescription
enabledtrueEnable or disable ChanServ
min_password_length8Minimum password length for channel registration
max_registered_channels_per_user10Max channels a single account can register
forbidden_channel_names(see below)Channel names/patterns that cannot be registered
channel_expire_days90Days until an inactive channel registration is deleted

The forbidden_channel_names list can contain exact strings or Elixir regex patterns:

forbidden_channel_names: [
"#services", # Exact match
"#staff", # Exact match
~r/^#opers$/, # Regex: exactly #opers
~r/^#admin.*/, # Regex: any channel starting with #admin
]

These are the default values applied when a channel is first registered. Channel founders can change them via /msg ChanServ SET.

SettingDefaultDescription
entrymsgnilMessage shown to users on join
keeptopictrueRestore topic when channel is re-created
opnoticetrueNotify channel when ChanServ grants ops
peacefalsePrevent ops from kicking equal-access users
privatefalseHide channel from ChanServ INFO listing
restrictedfalseRestrict join to users with access
securefalseRequire NickServ identification for op access
fantasytrueEnable !command shortcuts in channel
guardtrueChanServ stays in channel as guard
topiclockfalseOnly identified users can change topic

The RegisteredChannelExpiration job deletes channel registrations inactive for channel_expire_days. Activity is tracked based on channel usage.

For email functionality (nick verification), configure the mailer:

config :elixircd, ElixIRCd.Utils.Mailer,
adapter: Bamboo.LocalAdapter # Development: stores emails locally

For production with SMTP:

config :elixircd, ElixIRCd.Utils.Mailer,
adapter: Bamboo.MuaAdapter,
server: "smtp.example.com",
port: 587,
username: "noreply@example.com",
password: "smtppassword",
tls: :always

See Bamboo MUA documentation for full SMTP configuration options.