Man Linux: Main Page and Category List


       ngircd.conf - configuration file of ngIRCd




       ngircd.conf  is  the configuration file of the ngircd(8) Internet Relay
       Chat (IRC) daemon which you should adept to your local preferences  and

       Most  variables  can  be  modified  while  the ngIRCd daemon is already
       running: It  will  reload  its  configuration  when  a  HUP  signal  is


       The file consists of sections and parameters. A section begins with the
       name of the section in square brackets and  continues  until  the  next
       section begins.

       Sections contain parameters of the form

              name = value

       Empty  lines  and  any  line beginning with a semicolon (’;’) or a hash
       (’#’) character are treated as a comment and will be  ignored.  Leading
       and trailing whitespaces are trimmed before any processing takes place.

       The file format is line-based - that  means,  each  non-empty  newline-
       terminated  line  represents  either  a  comment,  a section name, or a

       Section and parameter names are not case sensitive.


       The file can  contain  blocks  of  four  types:  [Global],  [Operator],
       [Server], and [Channel].

       The main configuration of the server is stored in the [Global] section,
       like the server name, administrative information and the ports on which
       the  server  should  be  listening.  IRC  operators  of this server are
       defined in [Operator] blocks.  [Server] is  the  section  where  server
       links  are  configured. And [Channel] blocks are used to configure pre-
       defined ("persistent") IRC channels.

       There can be more than one [Operator], [Server] and [Channel]  sections
       per configuration file, but only one [Global] section.


       The  [Global]  section is used to define the server main configuration,
       like the server name and the  ports  on  which  the  server  should  be

       Name   Server  name  in  the IRC network. This is an individual name of
              the IRC server, it is not related to the DNS host name. It  must
              be  unique  in the IRC network and must contain at least one dot
              (".") character.

       Info   Info text of the server. This will be shown by WHOIS  and  LINKS
              requests for example.

       AdminInfo1, AdminInfo2, AdminEMail
              Information  about the server and the administrator, used by the
              ADMIN command.

       Ports  Ports on which the server should listen. There may be more  than
              one  port,  separated  with  commas (","). Default: 6667, unless
              SSL_Ports are also specified.

              Same  as  Ports  ,  except  that  ngIRCd  will  expect  incoming
              connections  to  be  SSL/TLS  encrypted. Common port numbers for
              SSL-encrypted IRC are 6669 and 6697. Default: none.

              Filename of SSL Server Key to be used for SSL connections.  This
              is required for SSL/TLS support.

              (OpenSSL only:) Password to decrypt private key.

              Certificate file of the private key.

              Name  of  the Diffie-Hellman Parameter file. Can be created with
              gnutls "certtool --generate-dh-params" or "openssl dhparam".  If
              this  file  is not present, it will be generated on startup when
              ngIRCd was compiled with gnutls  support  (this  may  take  some
              time).    If    ngIRCd   was   compiled   with   OpenSSL,   then
              (Ephemeral)-Diffie-Hellman  Key  Exchanges  and  several  Cipher
              Suites will not be available.

       Listen A  comma separated list of IP address on which the server should
              listen.  If unset, the defaults value is "" or, if ngIRCd
              was  compiled  with  IPv6  support,  "::,". So the server
              listens  on  all  configured  IP  addresses  and  interfaces  by

              Text  file  with  the  "message of the day" (MOTD). This message
              will be shown to all users connecting to the server.

              A simple Phrase (<256 chars) if you don’t want  to  use  a  MOTD
              file.   If this variable is set, no MotdFile will be read at all
              which can be handy if the daemon  should  run  inside  a  chroot

              User  ID under which the server should run; you can use the name
              of the user or the numerical ID.

              For this to work the server must have  been  started  with  root
              privileges!  In  addition, the configuration and MOTD files must
              be readable by this user, otherwise  RESTART  and  REHASH  won’t

              Group ID under which the ngIRCd should run; you can use the name
              of the group or the numerical ID.

              For this to work the server must have  been  started  with  root

              A  directory  to  chroot  in  when everything is initialized. It
              doesn’t need to be populated if ngIRCd is compiled as  a  static
              binary. By default ngIRCd won’t use the chroot() feature.

              For  this  to  work  the server must have been started with root

              This tells ngIRCd to write its current process  ID  to  a  file.
              Note  that the pidfile is written AFTER chroot and switching the
              user ID, i. e. the directory the  pidfile  resides  in  must  be
              writeable  by  the ngIRCd user and exist in the chroot directory
              (if configured, see above).

              After <PingTimeout> seconds of inactivity the server will send a
              PING  to  the  peer to test whether it is alive or not. Default:

              If  a  client  fails  to  answer  a  PING  with  a  PONG  within
              <PongTimeout>  seconds,  it  will be disconnected by the server.
              Default: 20.

              The server tries every <ConnectRetry>  seconds  to  establish  a
              link to not yet (or no longer) connected servers. Default: 60.

              Should  IRC Operators be allowed to use the MODE command even if
              they are not(!) channel-operators? Default: no.

              If OperCanUseMode is enabled, this may  lead  the  compatibility
              problems  with  Servers  that  run  the ircd-irc2 Software. This
              Option "masks" mode requests by  non-chanops  as  if  they  were
              coming from the server. Default: no.

              Are IRC operators connected to remote servers allowed to control
              this server, e.  g.  are  they  allowed  to  use  administrative
              commands  like CONNECT, DIE, SQUIT, ... that affect this server?
              Default: no.

              If enabled, no new channels can be created. Useful if you do not
              want  to  have  channels  other  than those defined in [Channel]
              sections in the configuration file.  Default: no.

       NoDNS  If set to true, ngIRCd will not make DNS  lookups  when  clients
              connect.   If  you  configure  the  daemon  to  connect to other
              servers, ngIRCd may still perform  a  DNS  lookup  if  required.
              Default: no.

              If  ngIRCd  is  compiled  with IDENT support this can be used to
              disable IDENT lookups at run time.  Default: no.

              Set this to no if you do not want ngIRCd to connect to other IRC
              servers  using  IPv4.  This  allows usage of ngIRCd in IPv6-only
              setups.  Default: yes.

              Set this to no if you do not want ngIRCd to connect to other irc
              servers using IPv6.  Default: yes.

              Maximum  number of simultaneous in- and outbound connections the
              server is allowed to accept (0: unlimited). Default: 0.

              Maximum number of simultaneous  connections  from  a  single  IP
              address  that  the  server  will  accept  (0:  unlimited).  This
              configuration options lowers  the  risk  of  denial  of  service
              attacks (DoS). Default: 5.

              Maximum  number  of  channels  a  user  can  be member of (0: no
              limit).  Default: 10.

              Maximum length of an user nick  name  (Default:  9,  as  in  RFC
              2812).  Please  note that all servers in an IRC network MUST use
              the same maximum nick name length!


       [Operator] sections are used to define IRC Operators. There may be more
       than one [Operator] block, one for each local operator.

       Name   ID of the operator (may be different of the nick name).

              Password of the IRC operator.

       Mask   Mask  that  is to be checked before an /OPER for this account is
              accepted.  Example: nick!ident@*


       Other servers are configured in [Server] sections. If you  configure  a
       port  for  the  connection, then this ngIRCd tries to connect to to the
       other server on the given port (active); if not, it waits for the other
       server to connect (passive).

       ngIRCd supports "server groups": You can assign an "ID" to every server
       with which you want this ngIRCd to link, and the daemon ensures that at
       any given time only one direct link exists to servers with the same ID.
       So if a server of a group won’t answer, ngIRCd tries to connect to  the
       next  server  in the given group (="with the same ID"), but never tries
       to connect to more than one server of this group simultaneously.

       There may be more than one [Server] block.

       Name   IRC name of the remote server.

       Host   Internet host name (or IP address) of the peer.

       Bind   IP address to use as source  IP  for  the  outgoing  connection.
              Default is to let the operating system decide.

       Port   Port  of  the  remote  server  to  which  ngIRCd  should connect
              (active).  If no port is assigned to a  configured  server,  the
              daemon only waits for incoming connections (passive, default).

              Own  password  for  this  connection.  This  password  has to be
              configured as PeerPassword on the other server.  Must  not  have
              ’:’ as first character.

              Foreign  password  for  this connection. This password has to be
              configured as MyPassword on the other server.

       Group  Group of this server (optional).

              Disable automatic connection even if port  value  is  specified.
              Default:  false.   You  can use the IRC Operator command CONNECT
              later on to create the link.

              Connect to the remote server using TLS/SSL. Default: false.

              Define a (case insensitive) mask matching nick names that should
              be  treated  as  IRC  services  when  introduced via this remote
              server. REGULAR SERVERS DON’T NEED this parameter, so  leave  it
              empty (which is the default).

              When  you are connecting IRC services which mask as a IRC server
              and which use "virtual users" to communicate with,  for  example
              "NickServ"  and  "ChanServ",  you  should  set this parameter to
              something like "*Serv".


       Pre-defined channels can be  configured  in  [Channel]  sections.  Such
       channels  are  created  by the server when starting up and even persist
       when there are no more members left.

       Persistent channels are marked with the mode ’P’, which can be set  and
       unset by IRC operators like other modes on the fly.

       There may be more than one [Channel] block.

       Name   Name of the channel, including channel prefix ("#" or "&").

       Topic  Topic for this channel.

       Modes  Initial channel modes.

       Key    Sets  initial  channel key (only relevant if channel mode "k" is

              Path and file name of a "key file" containing individual channel
              keys  for different users. The file consists of plain text lines
              with the following syntax (without spaces!):

                     user : nick : key

              user and nick can contain the wildcard character "*".
              key is an arbitrary password.

              Valid examples are:


              The key file is read on each JOIN command when this channel  has
              a  key  (channel  mode +k). Access is granted, if a) the channel
              key set using the MODE +k command or b) one of the lines in  the
              key file match.

              Please note:
              The  file  is not reopened on each access, so you can modify and
              overwrite it without problems, but moving or deleting  the  file
              will   have   not   effect   until   the   daemon  re-reads  its

              Set maximum user  limit  for  this  channel  (only  relevant  if
              channel mode "l" is set).


       It’s  wise  to  use "ngircd --configtest" to validate the configuration
       file after changing it. See ngircd(8) for details.


       Alexander Barton,