Bookmark and Share

Set up an IRC server using ngircd

This is a lightweight IRC server without the extra features. From the developers: "Next generation IRC Server ngircd is a IRC Daemon for small or private networks. It does not contain all the functions like the professional ones, e.g services. It is written from scratch and is not based upon the original IRCd like many others."

Install ngircd - on debian based systems: apt-get install ngircd

Edit the configuration file, on debian based systems it's: /etc/ngircd/ngircd.conf

Here's an example:

# Server name in the IRC network, must contain at least one dot
# (".") and be unique in the IRC network. Required!
Name = GNU/Linux IRC Server

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

# Global password for all users needed to connect to the server
Password =

# Information about the server and the administrator, used by the
# ADMIN command. Not required by server but by RFC!
AdminInfo1 =
AdminInfo2 =
AdminEMail =

# Ports on which the server should listen. There may be more than
# one port, separated with ",". (Default: 6667)
Ports = 6667

# IP address on which the server should listen. (Default: empty,
# so the server listens on all IP addresses of the system)
Listen =

# Text file with the "message of the day" (MOTD). This message will
# be shown to all users connecting to the server:
MotdFile = /etc/ngircd/ngircd.motd

# A simple Phrase (<256 motdphrase = "Hello. This is the Debian default MOTD sentence" serveruid =" 65534" servergid =" 65534" pidfile =" /var/run/ngircd/ngircd.pid"> seconds of inactivity the server will send a
# PING to the peer to test whether it is alive or not.
PingTimeout = 120

# If a client fails to answer a PING with a PONG within
# seconds, it will be disconnected by the server.
PongTimeout = 20

# The server tries every seconds to establish a link
# to not yet (or no longer) connected servers.
ConnectRetry = 60

# Should IRC Operators be allowed to use the MODE command even if
# they are not(!) channel-operators?
OperCanUseMode = yes

# Maximum number of simultaneous connection the server is allowed
# to accept (<=0: unlimited):
MaxConnections = 250

# Maximum number of simultaneous connections from a single IP address
# the server will accept (<=0: unlimited):
MaxConnectionsIP = 50

# Maximum number of channels a user can be member of (<=0: no limit):
MaxJoins = 50

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

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

# Password of the IRC operator
Password =

[Server]
# 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; if not it waits
# for the other server to connect.
# There may be more than one server block.
#
# Server Groups:
# The ngIRCd allows "server groups": You can assign an "ID" to every
# server with which you want this ngIRCd to link. If a server of a
# group won't answer, the ngIRCd tries to connect to the next server
# in the given group. But the ngircd never tries to connect to two
# servers with the same group ID.

# IRC name of the server
;Name = irc2.debian.org

# Internet host name of the peer
;Host = connect-to-host.the.net

# Port of the server to which the ngIRCd should connect. If you
# assign no port the ngIRCd waits for incoming connections.
;Port = 6666

# Own password for the connection. This password has to be configured
# as "PeerPassword" on the other server.
;MyPassword = MySecret

# Foreign password for this connection. This password has to be
# configured as "MyPassword" on the other server.
;PeerPassword = PeerSecret

# Group of this server (optional)
;Group = 123

[Channel]
# 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 of the channel
Name =

# Topic for this channel
Topic =

# Initial channel modes
;Modes = tn

# -eof-

To make the server accessible outside your LAN open port 6667 on your firewall/router. I highly encourage setting a strong global server password if you choose to do this. Requires a static IP or dynamic dns.

  1. gravatar

    # by Unknown - September 9, 2014 at 9:16 AM

    Thanks for the above post. You mentioned information in your post regarding set up an IRC server using ngircd. One thing you also mentioned that it is not the professional one.It is for the small one only.I will discuss it with my team.
    what is a digital signature

  2. gravatar

    # by Sharar Ravitz - September 9, 2014 at 7:54 PM

    That's actually a quote from the program description in Debian/Ubuntu.