]> arthur.barton.de Git - ngircd-web.git/blob - man/ngircd.conf.5.html
Update HTML manual pages
[ngircd-web.git] / man / ngircd.conf.5.html
1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
3 <head>
4   <meta charset="utf-8" />
5   <meta name="generator" content="pandoc" />
6   <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
7   <title>ngircd.conf</title>
8   <style>
9     html {
10       line-height: 1.5;
11       font-family: Georgia, serif;
12       font-size: 20px;
13       color: #1a1a1a;
14       background-color: #fdfdfd;
15     }
16     body {
17       margin: 0 auto;
18       max-width: 36em;
19       padding-left: 50px;
20       padding-right: 50px;
21       padding-top: 50px;
22       padding-bottom: 50px;
23       hyphens: auto;
24       overflow-wrap: break-word;
25       text-rendering: optimizeLegibility;
26       font-kerning: normal;
27     }
28     @media (max-width: 600px) {
29       body {
30         font-size: 0.9em;
31         padding: 1em;
32       }
33       h1 {
34         font-size: 1.8em;
35       }
36     }
37     @media print {
38       body {
39         background-color: transparent;
40         color: black;
41         font-size: 12pt;
42       }
43       p, h2, h3 {
44         orphans: 3;
45         widows: 3;
46       }
47       h2, h3, h4 {
48         page-break-after: avoid;
49       }
50     }
51     p {
52       margin: 1em 0;
53     }
54     a {
55       color: #1a1a1a;
56     }
57     a:visited {
58       color: #1a1a1a;
59     }
60     img {
61       max-width: 100%;
62     }
63     h1, h2, h3, h4, h5, h6 {
64       margin-top: 1.4em;
65     }
66     h5, h6 {
67       font-size: 1em;
68       font-style: italic;
69     }
70     h6 {
71       font-weight: normal;
72     }
73     ol, ul {
74       padding-left: 1.7em;
75       margin-top: 1em;
76     }
77     li > ol, li > ul {
78       margin-top: 0;
79     }
80     blockquote {
81       margin: 1em 0 1em 1.7em;
82       padding-left: 1em;
83       border-left: 2px solid #e6e6e6;
84       color: #606060;
85     }
86     code {
87       font-family: Menlo, Monaco, 'Lucida Console', Consolas, monospace;
88       font-size: 85%;
89       margin: 0;
90     }
91     pre {
92       margin: 1em 0;
93       overflow: auto;
94     }
95     pre code {
96       padding: 0;
97       overflow: visible;
98       overflow-wrap: normal;
99     }
100     .sourceCode {
101      background-color: transparent;
102      overflow: visible;
103     }
104     hr {
105       background-color: #1a1a1a;
106       border: none;
107       height: 1px;
108       margin: 1em 0;
109     }
110     table {
111       margin: 1em 0;
112       border-collapse: collapse;
113       width: 100%;
114       overflow-x: auto;
115       display: block;
116       font-variant-numeric: lining-nums tabular-nums;
117     }
118     table caption {
119       margin-bottom: 0.75em;
120     }
121     tbody {
122       margin-top: 0.5em;
123       border-top: 1px solid #1a1a1a;
124       border-bottom: 1px solid #1a1a1a;
125     }
126     th {
127       border-top: 1px solid #1a1a1a;
128       padding: 0.25em 0.5em 0.25em 0.5em;
129     }
130     td {
131       padding: 0.125em 0.5em 0.25em 0.5em;
132     }
133     header {
134       margin-bottom: 4em;
135       text-align: center;
136     }
137     #TOC li {
138       list-style: none;
139     }
140     #TOC ul {
141       padding-left: 1.3em;
142     }
143     #TOC > ul {
144       padding-left: 0;
145     }
146     #TOC a:not(:hover) {
147       text-decoration: none;
148     }
149     code{white-space: pre-wrap;}
150     span.smallcaps{font-variant: small-caps;}
151     span.underline{text-decoration: underline;}
152     div.column{display: inline-block; vertical-align: top; width: 50%;}
153     div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
154     ul.task-list{list-style: none;}
155     .display.math{display: block; text-align: center; margin: 0.5rem auto;}
156   </style>
157 </head>
158 <body>
159 <header id="title-block-header">
160 <h1 class="title">ngircd.conf</h1>
161 <p class="date">Sep 2023</p>
162 </header>
163 <h1>NAME</h1>
164 <p>ngircd.conf - configuration file of ngIRCd</p>
165 <h1>SYNOPSIS</h1>
166 <p><strong>/usr/local/etc/ngircd.conf</strong></p>
167 <h1>DESCRIPTION</h1>
168 <p><strong>ngircd.conf</strong> is the configuration file of the
169 <strong>ngircd</strong>(8) Internet Relay Chat (IRC) daemon, which must
170 be customized to the local preferences and needs.</p>
171 <p>Most variables can be modified while the ngIRCd daemon is already
172 running: It will reload its configuration file when a HUP signal or
173 REHASH command is received.</p>
174 <h1>FILE FORMAT</h1>
175 <p>The file consists of sections and parameters. A section begins with
176 the name of the section in square brackets and continues until the next
177 section begins.</p>
178 <p>Sections contain parameters of the form</p>
179 <blockquote>
180 <p><em>name</em> = <em>value</em></p>
181 </blockquote>
182 <p>Empty lines and any line beginning with a semicolon (';') or a hash
183 ('#') character are treated as a comment and will be ignored. Leading
184 and trailing whitespaces are trimmed before any processing takes
185 place.</p>
186 <p>The file format is line-based - that means, each non-empty
187 newline-terminated line represents either a comment, a section name, or
188 a parameter.</p>
189 <p>Section and parameter names are not case sensitive.</p>
190 <p>There are three types of variables: <em>booleans,</em> <em>text
191 strings,</em> and <em>numbers.</em> Boolean values are <em>true</em> if
192 they are "yes", "true", or any non-null integer. Text strings are used
193 1:1 without leading and following spaces; there is no way to quote
194 strings. And for numbers all decimal integer values are valid.</p>
195 <p>In addition, some string or numerical variables accept lists of
196 values, separated by commas (",").</p>
197 <h1>SECTION OVERVIEW</h1>
198 <p>The file can contain blocks of seven types: [Global], [Limits],
199 [Options], [SSL], [Operator], [Server], and [Channel].</p>
200 <p>The main configuration of the server is stored in the
201 <em>[Global]</em> section, like the server name, administrative
202 information and the ports on which the server should be listening. The
203 variables in this section have to be adjusted to the local requirements
204 most of the time, whereas all the variables in the other sections can be
205 left on their defaults very often.</p>
206 <p>Options in the <em>[Limits]</em> block are used to tweak different
207 limits and timeouts of the daemon, like the maximum number of clients
208 allowed to connect to this server. Variables in the <em>[Options]</em>
209 section can be used to enable or disable specific features of ngIRCd,
210 like support for IDENT, PAM, IPv6, and protocol and cloaking features.
211 The <em>[SSL]</em> block contains all SSL-related configuration
212 variables. These three sections are all optional.</p>
213 <p>IRC operators of this server are defined in <em>[Operator]</em>
214 blocks. Links to remote servers are configured in <em>[Server]</em>
215 sections. And <em>[Channel]</em> blocks are used to configure
216 pre-defined ("persistent") IRC channels.</p>
217 <p>There can be more than one [Operator], [Server] and [Channel] section
218 per configuration file, one for each operator, server, and channel.
219 [Global], [Limits], [Options], and [SSL] sections can occur multiple
220 times, too, but each variable overwrites itself, only the last
221 assignment is relevant.</p>
222 <h1>[GLOBAL]</h1>
223 <p>The <em>[Global]</em> section is used to define the main
224 configuration of the server, like the server name and the ports on which
225 the server should be listening. These settings depend on your personal
226 preferences, so you should make sure that they correspond to your
227 installation and setup!</p>
228 <dl>
229 <dt><strong>Name</strong> (string)</dt>
230 <dd>
231 <p>Server name in the IRC network. This is an individual name of the IRC
232 server, it is not related to the DNS host name. It must be unique in the
233 IRC network and must contain at least one dot (".") character. When not
234 set, ngIRCd tries to deduce a valid IRC server name from the local host
235 name.</p>
236 </dd>
237 <dt><strong>AdminInfo1</strong>, <strong>AdminInfo2</strong>,
238 <strong>AdminEMail</strong> (string)</dt>
239 <dd>
240 <p>Information about the server and the administrator, used by the ADMIN
241 command. This information is not required by the server but by RFC!</p>
242 </dd>
243 <dt><strong>HelpFile</strong> (string)</dt>
244 <dd>
245 <p>Text file which contains the ngIRCd help text. This file is required
246 to display help texts when using the "HELP &lt;cmd&gt;" command. Please
247 note: Changes made to this file take effect when ngircd starts up or is
248 instructed to re-read its configuration file. Default: a built-in
249 standard path.</p>
250 </dd>
251 <dt><strong>Info</strong> (string)</dt>
252 <dd>
253 <p>Info text of the server. This will be shown by WHOIS and LINKS
254 requests for example. Set to the server software name and version by
255 default.</p>
256 </dd>
257 <dt><strong>Listen</strong> (list of strings)</dt>
258 <dd>
259 <p>A comma separated list of IP address on which the server should
260 listen. If unset, the defaults value is "0.0.0.0" or, if ngIRCd was
261 compiled with IPv6 support, "::,0.0.0.0". So the server listens on all
262 configured IP addresses and interfaces by default.</p>
263 </dd>
264 <dt><strong>MotdFile</strong> (string)</dt>
265 <dd>
266 <p>Text file with the "message of the day" (MOTD). This message will be
267 shown to all users connecting to the server. Please note: Changes made
268 to this file take effect when ngircd starts up or is instructed to
269 re-read its configuration file. Default: a built-in standard path.</p>
270 </dd>
271 <dt><strong>MotdPhrase</strong> (string)</dt>
272 <dd>
273 <p>A simple Phrase (&lt;127 chars) if you don't want to use a MOTD
274 file.</p>
275 </dd>
276 <dt><strong>Network</strong> (string)</dt>
277 <dd>
278 <p>The name of the IRC network to which this server belongs. This name
279 is optional, should only contain ASCII characters, and can't contain
280 spaces. It is only used to inform clients. The default is empty, so no
281 network name is announced to clients.</p>
282 </dd>
283 <dt><strong>Password</strong> (string)</dt>
284 <dd>
285 <p>Global password for all users needed to connect to the server. The
286 default is empty, so no password is required. Please note: This feature
287 is not available if ngIRCd is using PAM!</p>
288 </dd>
289 <dt><strong>PidFile</strong> (string)</dt>
290 <dd>
291 <p>This tells ngIRCd to write its current process ID to a file. Note
292 that the "PID file" is written AFTER chroot and switching the user ID,
293 therefore the directory the file resides in must be writable by the
294 ngIRCd user and exist in the chroot directory (if configured, see
295 above).</p>
296 </dd>
297 <dt><strong>Ports</strong> (list of numbers)</dt>
298 <dd>
299 <p>Port number(s) on which the server should listen for unencrypted
300 connections. There may be more than one port, separated with commas
301 (","). Default: 6667.</p>
302 </dd>
303 <dt><strong>ServerGID</strong> (string or number)</dt>
304 <dd>
305 <p>Group ID under which the ngIRCd daemon should run; you can use the
306 name of the group or the numerical ID.</p>
307 </dd>
308 </dl>
309 <blockquote>
310 <p><strong>Attention:</strong><br />
311 For this to work the server must have been started with root
312 privileges!</p>
313 </blockquote>
314 <dl>
315 <dt><strong>ServerUID</strong> (string or number)</dt>
316 <dd>
317 <p>User ID under which the ngIRCd daemon should run; you can use the
318 name of the user or the numerical ID.</p>
319 </dd>
320 </dl>
321 <blockquote>
322 <p><strong>Attention:</strong><br />
323 For this to work the server must have been started with root privileges!
324 In addition, the configuration and MOTD files must be readable by this
325 user, otherwise RESTART and REHASH won't work!</p>
326 </blockquote>
327 <h1>[LIMITS]</h1>
328 <p>This section is used to define some limits and timeouts for this
329 ngIRCd instance. Default values should be safe, but it is wise to
330 double-check :-)</p>
331 <dl>
332 <dt><strong>ConnectRetry</strong> (number)</dt>
333 <dd>
334 <p>The server tries every &lt;ConnectRetry&gt; seconds to establish a
335 link to not yet (or no longer) connected servers. Default: 60.</p>
336 </dd>
337 <dt><strong>IdleTimeout</strong> (number)</dt>
338 <dd>
339 <p>Number of seconds after which the whole daemon should shutdown when
340 no connections are left active after handling at least one client (0:
341 never). This can be useful for testing or when ngIRCd is started using
342 "socket activation" with systemd(8), for example. Default: 0.</p>
343 </dd>
344 <dt><strong>MaxConnections</strong> (number)</dt>
345 <dd>
346 <p>Maximum number of simultaneous in- and outbound connections the
347 server is allowed to accept (0: unlimited). Default: 0.</p>
348 </dd>
349 <dt><strong>MaxConnectionsIP</strong> (number)</dt>
350 <dd>
351 <p>Maximum number of simultaneous connections from a single IP address
352 that the server will accept (0: unlimited). This configuration options
353 lowers the risk of denial of service attacks (DoS). Default: 5.</p>
354 </dd>
355 <dt><strong>MaxJoins</strong> (number)</dt>
356 <dd>
357 <p>Maximum number of channels a user can be member of (0: no limit).
358 Default: 10.</p>
359 </dd>
360 <dt><strong>MaxNickLength</strong> (number)</dt>
361 <dd>
362 <p>Maximum length of an user nickname (Default: 9, as in RFC 2812).
363 Please note that all servers in an IRC network MUST use the same maximum
364 nickname length!</p>
365 </dd>
366 <dt><strong>MaxPenaltyTime</strong> (number)</dt>
367 <dd>
368 <p>Maximum penalty time increase in seconds, per penalty event. Set to
369 -1 for no limit (the default), 0 to disable penalties altogether. ngIRCd
370 doesn't use penalty increases higher than 2 seconds during normal
371 operation, so values greater than 1 rarely make sense.</p>
372 </dd>
373 <dt><strong>MaxListSize</strong> (number)</dt>
374 <dd>
375 <p>Maximum number of channels returned in response to a LIST command.
376 Default: 100.</p>
377 </dd>
378 <dt><strong>PingTimeout</strong> (number)</dt>
379 <dd>
380 <p>After &lt;PingTimeout&gt; seconds of inactivity the server will send
381 a PING to the peer to test whether it is alive or not. Default: 120.</p>
382 </dd>
383 <dt><strong>PongTimeout</strong> (number)</dt>
384 <dd>
385 <p>If a client fails to answer a PING with a PONG within
386 &lt;PongTimeout&gt; seconds, it will be disconnected by the server.
387 Default: 20.</p>
388 </dd>
389 </dl>
390 <h1>[OPTIONS]</h1>
391 <p>Optional features and configuration options to further tweak the
392 behavior of ngIRCd are configured in this section. If you want to get
393 started quickly, you most probably don't have to make changes here --
394 they are all optional.</p>
395 <dl>
396 <dt><strong>AllowedChannelTypes</strong> (string)</dt>
397 <dd>
398 <p>List of allowed channel types (channel prefixes) for newly created
399 channels on the local server. By default, all supported channel types
400 are allowed. Set this variable to the empty string to disallow creation
401 of new channels by local clients at all. Default: #&amp;+</p>
402 </dd>
403 <dt><strong>AllowRemoteOper</strong> (boolean)</dt>
404 <dd>
405 <p>If this option is active, IRC operators connected to remote servers
406 are allowed to control this local server using administrative commands,
407 for example like CONNECT, DIE, SQUIT etc. Default: no.</p>
408 </dd>
409 <dt><strong>ChrootDir</strong> (string)</dt>
410 <dd>
411 <p>A directory to chroot in when everything is initialized. It doesn't
412 need to be populated if ngIRCd is compiled as a static binary. By
413 default ngIRCd won't use the chroot() feature.</p>
414 </dd>
415 </dl>
416 <blockquote>
417 <p><strong>Attention:</strong><br />
418 For this to work the server must have been started with root
419 privileges!</p>
420 </blockquote>
421 <dl>
422 <dt><strong>CloakHost</strong> (string)</dt>
423 <dd>
424 <p>Set this hostname for every client instead of the real one. Default:
425 empty, don't change. Use %x to add the hashed value of the original
426 hostname.</p>
427 </dd>
428 <dt><strong>CloakHostModeX</strong> (string)</dt>
429 <dd>
430 <p>Use this hostname for hostname cloaking on clients that have the user
431 mode "+x" set, instead of the name of the server. Default: empty, use
432 the name of the server. Use %x to add the hashed value of the original
433 hostname</p>
434 </dd>
435 <dt><strong>CloakHostSalt</strong> (string)</dt>
436 <dd>
437 <p>The Salt for cloaked hostname hashing. When undefined a random hash
438 is generated after each server start.</p>
439 </dd>
440 <dt><strong>CloakUserToNick</strong> (boolean)</dt>
441 <dd>
442 <p>Set every clients' user name and real name to their nickname and hide
443 the one supplied by the IRC client. Default: no.</p>
444 </dd>
445 <dt><strong>ConnectIPv4</strong> (boolean)</dt>
446 <dd>
447 <p>Set this to no if you do not want ngIRCd to connect to other IRC
448 servers using the IPv4 protocol. This allows the usage of ngIRCd in
449 IPv6-only setups. Default: yes.</p>
450 </dd>
451 <dt><strong>ConnectIPv6</strong> (boolean)</dt>
452 <dd>
453 <p>Set this to no if you do not want ngIRCd to connect to other IRC
454 servers using the IPv6 protocol. Default: yes.</p>
455 </dd>
456 <dt><strong>DefaultUserModes</strong> (string)</dt>
457 <dd>
458 <p>Default user mode(s) to set on new local clients. Please note that
459 only modes can be set that the client could set using regular MODE
460 commands, you can't set "a" (away) for example! Default: none.</p>
461 </dd>
462 <dt><strong>DNS</strong> (boolean)</dt>
463 <dd>
464 <p>If set to false, ngIRCd will not make any DNS lookups when clients
465 connect. If you configure the daemon to connect to other servers, ngIRCd
466 may still perform a DNS lookup if required. Default: yes.</p>
467 </dd>
468 <dt><strong>Ident</strong> (boolean)</dt>
469 <dd>
470 <p>If ngIRCd is compiled with IDENT support this can be used to disable
471 IDENT lookups at run time. Users identified using IDENT are registered
472 without the "~" character prepended to their user name. Default:
473 yes.</p>
474 </dd>
475 <dt><strong>IncludeDir</strong> (string)</dt>
476 <dd>
477 <p>Directory containing configuration snippets (*.conf), that should be
478 read in after parsing the current configuration file. Default: a
479 built-in directory name when no configuration file was explicitly given
480 on the command line (check "ngircd --configtest"), none (empty)
481 otherwise.</p>
482 </dd>
483 </dl>
484 <blockquote>
485 <p>This way no default include directory is used when a possibly
486 non-default configuration file was explicitly specified using
487 "--config"/"-f" on the command line which (intentionally) did not
488 specify an <em>IncludeDir</em> directive.</p>
489 </blockquote>
490 <dl>
491 <dt><strong>MorePrivacy</strong> (boolean)</dt>
492 <dd>
493 <p>This will cause ngIRCd to censor user idle time, logon time as well
494 as the PART/QUIT messages (that are sometimes used to inform everyone
495 about which client software is being used). WHOWAS requests are also
496 silently ignored, and NAMES output doesn't list any clients for
497 non-members. This option is most useful when ngIRCd is being used
498 together with anonymizing software such as TOR or I2P and one does not
499 wish to make it too easy to collect statistics on the users. Default:
500 no.</p>
501 </dd>
502 <dt><strong>NoticeBeforeRegistration</strong> (boolean)</dt>
503 <dd>
504 <p>Normally ngIRCd doesn't send any messages to a client until it is
505 registered. Enable this option to let the daemon send "NOTICE *"
506 messages to clients while connecting. Default: no.</p>
507 </dd>
508 <dt><strong>OperCanUseMode</strong> (boolean)</dt>
509 <dd>
510 <p>Should IRC Operators be allowed to use the MODE command even if they
511 are not(!) channel-operators? Default: no.</p>
512 </dd>
513 <dt><strong>OperChanPAutoOp</strong> (boolean)</dt>
514 <dd>
515 <p>Should IRC Operators get AutoOp (+o) in persistent (+P) channels?
516 Default: yes.</p>
517 </dd>
518 <dt><strong>OperServerMode</strong> (boolean)</dt>
519 <dd>
520 <p>If <strong>OperCanUseMode</strong> is enabled, this may lead the
521 compatibility problems with Servers that run the ircd-irc2 Software.
522 This Option "masks" mode requests by non-chanops as if they were coming
523 from the server. Default: no; only enable it if you have ircd-irc2
524 servers in your IRC network.</p>
525 </dd>
526 <dt><strong>PAM</strong> (boolean)</dt>
527 <dd>
528 <p>If ngIRCd is compiled with PAM support this can be used to disable
529 all calls to the PAM library at runtime; all users connecting without
530 password are allowed to connect, all passwords given will fail. Users
531 identified using PAM are registered without the "~" character prepended
532 to their user name. Default: yes.</p>
533 </dd>
534 <dt><strong>PAMIsOptional</strong> (boolean)</dt>
535 <dd>
536 <p>When PAM is enabled, all clients are required to be authenticated
537 using PAM; connecting to the server without successful PAM
538 authentication isn't possible. If this option is set, clients not
539 sending a password are still allowed to connect: they won't become
540 "identified" and keep the "~" character prepended to their supplied user
541 name. Please note: To make some use of this behavior, it most probably
542 isn't useful to enable "Ident", "PAM" and "PAMIsOptional" at the same
543 time, because you wouldn't be able to distinguish between Ident'ified
544 and PAM-authenticated users: both don't have a "~" character prepended
545 to their respective user names! Default: no.</p>
546 </dd>
547 <dt><strong>PAMServiceName</strong> (string)</dt>
548 <dd>
549 <p>When PAM is enabled, this value determines the used PAM
550 configuration. This setting allows running multiple ngIRCd instances
551 with different PAM configurations on each instance. If you set it to
552 "ngircd-foo", PAM will use /etc/pam.d/ngircd-foo instead of the default
553 /etc/pam.d/ngircd. Default: ngircd.</p>
554 </dd>
555 <dt><strong>RequireAuthPing</strong> (boolean)</dt>
556 <dd>
557 <p>Let ngIRCd send an "authentication PING" when a new client connects,
558 and register this client only after receiving the corresponding "PONG"
559 reply. Default: no.</p>
560 </dd>
561 <dt><strong>ScrubCTCP</strong> (boolean)</dt>
562 <dd>
563 <p>If set to true, ngIRCd will silently drop all CTCP requests sent to
564 it from both clients and servers. It will also not forward CTCP requests
565 to any other servers. CTCP requests can be used to query user clients
566 about which software they are using and which versions said software is.
567 CTCP can also be used to reveal clients IP numbers. ACTION CTCP requests
568 are not blocked, this means that /me commands will not be dropped, but
569 please note that blocking CTCP will disable file sharing between users!
570 Default: no.</p>
571 </dd>
572 <dt><strong>SyslogFacility</strong> (string)</dt>
573 <dd>
574 <p>Syslog "facility" to which ngIRCd should send log messages. Possible
575 values are system dependent, but most probably "auth", "daemon", "user"
576 and "local1" through "local7" are possible values; see syslog(3).
577 Default is "local5" for historical reasons, you probably want to change
578 this to "daemon", for example.</p>
579 </dd>
580 <dt><strong>WebircPassword</strong> (string)</dt>
581 <dd>
582 <p>Password required for using the WEBIRC command used by some
583 Web-to-IRC gateways. If not set or empty, the WEBIRC command can't be
584 used. Default: not set.</p>
585 </dd>
586 </dl>
587 <h1>[SSL]</h1>
588 <p>All SSL-related configuration variables are located in the
589 <em>[SSL]</em> section. Please note that this whole section is only
590 recognized by ngIRCd when it is compiled with support for SSL using
591 OpenSSL or GnuTLS!</p>
592 <dl>
593 <dt><strong>CAFile</strong> (string)</dt>
594 <dd>
595 <p>Filename pointing to the Trusted CA Certificates. This is required
596 for verifying peer certificates. Default: not set, so no certificates
597 are trusted.</p>
598 </dd>
599 <dt><strong>CertFile</strong> (string)</dt>
600 <dd>
601 <p>SSL Certificate file of the private server key.</p>
602 </dd>
603 <dt><strong>CipherList</strong> (string)</dt>
604 <dd>
605 <p>Select cipher suites allowed for SSL/TLS connections. This defaults
606 to "HIGH:!aNULL:@STRENGTH:!SSLv3" (OpenSSL) or "SECURE128:-VERS-SSL3.0"
607 (GnuTLS). Please see 'man 1ssl ciphers' (OpenSSL) and 'man 3
608 gnutls_priority_init' (GnuTLS) for details.</p>
609 </dd>
610 <dt><strong>CRLFile</strong> (string)</dt>
611 <dd>
612 <p>Filename of Certificate Revocation List.</p>
613 </dd>
614 <dt><strong>DHFile</strong> (string)</dt>
615 <dd>
616 <p>Name of the Diffie-Hellman Parameter file. Can be created with GnuTLS
617 "certtool --generate-dh-params" or "openssl dhparam". If this file is
618 not present, it will be generated on startup when ngIRCd was compiled
619 with GnuTLS support (this may take some time). If ngIRCd was compiled
620 with OpenSSL, then (Ephemeral)-Diffie-Hellman Key Exchanges and several
621 Cipher Suites will not be available.</p>
622 </dd>
623 <dt><strong>KeyFile</strong> (string)</dt>
624 <dd>
625 <p>Filename of SSL Server Key to be used for SSL connections. This is
626 required for SSL/TLS support.</p>
627 </dd>
628 <dt><strong>KeyFilePassword</strong> (string)</dt>
629 <dd>
630 <p>OpenSSL only: Password to decrypt the private key file.</p>
631 </dd>
632 <dt><strong>Ports</strong> (list of numbers)</dt>
633 <dd>
634 <p>Same as <strong>Ports</strong> , except that ngIRCd will expect
635 incoming connections to be SSL/TLS encrypted. Common port numbers for
636 SSL-encrypted IRC are 6669 and 6697. Default: none.</p>
637 </dd>
638 </dl>
639 <h1>[OPERATOR]</h1>
640 <p><em>[Operator]</em> sections are used to define IRC Operators. There
641 may be more than one <em>[Operator]</em> block, one for each local
642 operator.</p>
643 <dl>
644 <dt><strong>Name</strong> (string)</dt>
645 <dd>
646 <p>ID of the operator (may be different of the nickname).</p>
647 </dd>
648 <dt><strong>Password</strong> (string)</dt>
649 <dd>
650 <p>Password of the IRC operator.</p>
651 </dd>
652 <dt><strong>Mask</strong> (string)</dt>
653 <dd>
654 <p>Mask that is to be checked before an /OPER for this account is
655 accepted. Example: nick!ident@*.example.com</p>
656 </dd>
657 </dl>
658 <h1>[SERVER]</h1>
659 <p>Other servers are configured in <em>[Server]</em> sections. If you
660 configure a port for the connection, then this ngIRCd tries to connect
661 to the other server on the given port (active); if not, it waits for the
662 other server to connect (passive).</p>
663 <p>ngIRCd supports "server groups": You can assign an "ID" to every
664 server with which you want this ngIRCd to link, and the daemon ensures
665 that at any given time only one direct link exists to servers with the
666 same ID. So if a server of a group won't answer, ngIRCd tries to connect
667 to the next server in the given group (="with the same ID"), but never
668 tries to connect to more than one server of this group
669 simultaneously.</p>
670 <p>There may be more than one <em>[Server]</em> block.</p>
671 <dl>
672 <dt><strong>Name</strong> (string)</dt>
673 <dd>
674 <p>IRC name of the remote server.</p>
675 </dd>
676 <dt><strong>Host</strong> (string)</dt>
677 <dd>
678 <p>Internet host name (or IP address) of the peer.</p>
679 </dd>
680 <dt><strong>Bind</strong> (string)</dt>
681 <dd>
682 <p>IP address to use as source IP for the outgoing connection. Default
683 is to let the operating system decide.</p>
684 </dd>
685 <dt><strong>Port</strong> (number)</dt>
686 <dd>
687 <p>Port of the remote server to which ngIRCd should connect (active). If
688 no port is assigned to a configured server, the daemon only waits for
689 incoming connections (passive, default).</p>
690 </dd>
691 <dt><strong>MyPassword</strong> (string)</dt>
692 <dd>
693 <p>Own password for this connection. This password has to be configured
694 as <strong>PeerPassword</strong> on the other server. Must not have ':'
695 as first character.</p>
696 </dd>
697 <dt><strong>PeerPassword</strong> (string)</dt>
698 <dd>
699 <p>Foreign password for this connection. This password has to be
700 configured as <strong>MyPassword</strong> on the other server.</p>
701 </dd>
702 <dt><strong>Group</strong> (number)</dt>
703 <dd>
704 <p>Group of this server (optional).</p>
705 </dd>
706 <dt><strong>Passive</strong> (boolean)</dt>
707 <dd>
708 <p>Disable automatic connection even if port value is specified.
709 Default: false. You can use the IRC Operator command CONNECT later on to
710 create the link.</p>
711 </dd>
712 <dt><strong>SSLConnect</strong> (boolean)</dt>
713 <dd>
714 <p>Connect to the remote server using TLS/SSL. Default: false.</p>
715 </dd>
716 <dt><strong>SSLVerify</strong> (boolean)</dt>
717 <dd>
718 <p>Verify the TLS certificate presented by the remote server. Default:
719 yes.</p>
720 </dd>
721 <dt><strong>ServiceMask</strong> (string)</dt>
722 <dd>
723 <p>Define a (case insensitive) list of masks matching nicknames that
724 should be treated as IRC services when introduced via this remote
725 server, separated by commas (","). REGULAR SERVERS DON'T NEED this
726 parameter, so leave it empty (which is the default).</p>
727 </dd>
728 </dl>
729 <blockquote>
730 <p>When you are connecting IRC services which mask as a IRC server and
731 which use "virtual users" to communicate with, for example "NickServ"
732 and "ChanServ", you should set this parameter to something like "*Serv",
733 "*Serv,OtherNick", or "NickServ,ChanServ,XyzServ".</p>
734 </blockquote>
735 <h1>[CHANNEL]</h1>
736 <p>Pre-defined channels can be configured in <em>[Channel]</em>
737 sections. Such channels are created by the server when starting up and
738 even persist when there are no more members left.</p>
739 <p>Persistent channels are marked with the mode 'P', which can be set
740 and unset by IRC operators like other modes on the fly.</p>
741 <p>There may be more than one <em>[Channel]</em> block.</p>
742 <dl>
743 <dt><strong>Name</strong> (string)</dt>
744 <dd>
745 <p>Name of the channel, including channel prefix ("#" or "&amp;").</p>
746 </dd>
747 <dt><strong>Topic</strong> (string)</dt>
748 <dd>
749 <p>Topic for this channel.</p>
750 </dd>
751 <dt><strong>Modes</strong> (string)</dt>
752 <dd>
753 <p>Initial channel modes, as used in "MODE" commands. Modifying lists
754 (ban list, invite list, exception list) is supported.</p>
755 </dd>
756 </dl>
757 <blockquote>
758 <p>This option can be specified multiple times, evaluated top to
759 bottom.</p>
760 </blockquote>
761 <dl>
762 <dt><strong>Autojoin</strong> (boolean)</dt>
763 <dd>
764 <p>Should ngIRCd automatically join ("autojoin") all users to this
765 channel on connect? Note: The users must have permissions to access the
766 channel, otherwise joining them will fail!</p>
767 </dd>
768 <dt><strong>KeyFile</strong> (string)</dt>
769 <dd>
770 <p>Path and file name of a "key file" containing individual channel keys
771 for different users. The file consists of plain text lines with the
772 following syntax (without spaces!):</p>
773 </dd>
774 </dl>
775 <blockquote>
776 <blockquote>
777 <p><em>user</em> : <em>nick</em> : <em>key</em></p>
778 </blockquote>
779 <p><em>user</em> and <em>nick</em> can contain the wildcard character
780 "*".<br />
781 <em>key</em> is an arbitrary password.</p>
782 <p>Valid examples are:</p>
783 <blockquote>
784 <p>*:*:KeY<br />
785 *:nick:123<br />
786 ~user:*:xyz</p>
787 </blockquote>
788 <p>The key file is read on each JOIN command when this channel has a key
789 (channel mode +k). Access is granted, if a) the channel key set using
790 the MODE +k command or b) one of the lines in the key file match.</p>
791 <p><strong>Please note:</strong><br />
792 The file is not reopened on each access, so you can modify and overwrite
793 it without problems, but moving or deleting the file will have not
794 effect until the daemon re-reads its configuration!</p>
795 </blockquote>
796 <h1>HINTS</h1>
797 <p>It's wise to use "ngircd --configtest" to validate the configuration
798 file after changing it. See <strong>ngircd</strong>(8) for details.</p>
799 <h1>AUTHOR</h1>
800 <p>Alexander Barton, &lt;alex@barton.de&gt;<br />
801 Florian Westphal, &lt;fw@strlen.de&gt;</p>
802 <p>Homepage: http://ngircd.barton.de/</p>
803 <h1>SEE ALSO</h1>
804 <p><strong>ngircd</strong>(8)</p>
805 </body>
806 </html>