Provided by: ngircd_15-0.1_i386 bug


       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, <>
       Homepage: <>