Writing the conf file

11 Feb 03 15:02:47 +0100
by Dilligent.

This is the most important step when installing an IRCd Server:

The Conf file consists of various lines starting with a single character followed by a colon and then fields that you set the options in seperated by additional colons.
Comment lines start with an # and mark the entire line to be a comment.

Example: M:irc.server.org:FoxNet:pureIRCd support server:6667
This is an M-line, it tells the server to use the name "irc.server.org", that it is part of the Network "FoxNet", that it's description is "pureIRCd support server" and that the default port for it to listen on will be "6667"

Some lines are required, some are optional, and some are even disencouraged.

|****************************************|
|                 M-Line        (MANDATORY)                |
*****************************************

M:[Servername]:[Networkname]:[Server description]:[Default port]
This line is required so that the server has some basic information about itself.
Example:
M:irc.d.org:FoxNet:Pure IRCd support server:1500
 

|****************************************|
|                 A-Line        (MANDATORY)                 |
*****************************************

A:[AdminInfo]:[Admin Name]:[Admin Email]
This line is required for users to be able to get information about who is providing this server.
Example:
A:Generic Internet Access:Admin Dennis Fisch:dilligent@gmx.net
 

|****************************************|
|                 Y-Line        (MANDATORY)                 |
*****************************************

Y:[Class number]:[Ping Frequency (seconds)]:[Connect Frequency (seconds)]:[Max Connections]:[Max SendQ]
This line is required, so that the servers can maintain some kind of control about it's peers to avoid abusive bahavior.
You can specify more than one of these lines, but they must have different class numbers of course.
Example:
Y:100:0:1:10:1024
 

|****************************************|
|                 I-Line        (MANDATORY)                  |
*****************************************

I:[IP Address/Mask/NOMATCH]:[Password]:[DNS Mask]:[Assigned connection class]
These lines will assign connecting cliens/servers a connection class (specified in Y-Lines) and also sets if they are required to specifiy a password.
If the first field reads "NOMATCH" then the server will only match incoming connections against the hostmask field, if you specifiy an "@" you can also make the server look for IDENT.
Example (allows all connections and assigns them to class 100):
I:*::*::100
 

|****************************************|
|                 O-Line        (OPTIONAL)                      |
*****************************************

O:[Hostmask]:[Password]:[OperId]:[Flags]:[Connection class]
These lines specifiy host masks that normal clients can gain IRC operator status from, available flags are:
o    = Operator
s    = recieves server messages
i     = Invisible
x    = Host is cloaked (unused)
r     = Can rehash the server.
R    = Can restart the server
D    = Can shutdown the server
C    = Can do global reroutes.
c     = Can only do local reroutes
B    = Can UnKline and Kline
b     = Can only Kline
k    = Can kill local clients only
K   = Can kill global clients
Example:
O:*:generic:dill:osixkrRDCcKBb:100
 

|****************************************|
|                 K-Line        (DISENCOURAGDED)      |
*****************************************

K:[Host Mask]:[reason]:[unsused]
These lines will permanently ban people from a certain hostmask from your server.
Example:
K:*:Bugger off (just testing my Klines ;) ):*
 

|****************************************|
|                 Q-Line        (OPTIONAL)                      |
*****************************************

Q:[unused]:[reason]:[Nickname (can be a Nickname mask)]
These lines will effectively ban nicknames from everyone.
Q::Reserved for services:ChanServ
 

|****************************************|
|                 Z-Line        (DISENCOURAGDED)       |
*****************************************

Z:[IP Mask]:[Reason]:[unused]
These lines should only act as a last resort, they will effectively ban people from even connecting to your server.
Example:
Z:127.0.0.1:Please do not use this server from your local computer!:*
 

|****************************************|
|                 C-Line        (OPTIONAL)                      |
*****************************************

C:[IP]:[Password]:[Servername]:[Port]:[Connection class]
Allows the server outbound connections to these hosts. If you specifiy a port here, it means the server will automatically attempt to connect there.
C:127.0.0.1:nopwd:irc.t.org:6661:100
NOTE: AN C-LINE MUST'VE AN N-LINE THAT BELONGS TO IT! ONE C-LINE CANNOT WORK WITHOUT IT'S RESPECTIVE N-LINE
The N-Line that belongs to this line would like like this:
N:127.0.0.1:nopwd:irc.t.org::100
Both sides of the connection will *HAVE* to have lines for this server in order to allow the connections.

|****************************************|
|                 N-Line        (OPTIONAL)                      |
*****************************************

N:[IP]:[Password]:[Servername]:[Connection class]
Allows for inbound connections from these hosts.
N:127.0.0.1:nopwd:irc.t.org::100
NOTE: AN N-LINE MUST'VE AN C-LINE THAT BELONGS TO IT! ONE N-LINE CANNOT WORK WITHOUT IT'S RESPECTIVE C-LINE
Both sides of the connection will *HAVE* to have lines for this server in order to allow the connections.