.\"
.\" ngircd(8) manual page template
.\"
-.TH ngircd 8 "Dec 2010" ngircd "ngIRCd Manual"
+.TH ngircd 8 "Sep 2023" ngIRCd "ngIRCd Manual"
.SH NAME
-ngIRCd \- the next generation IRC daemon
+ngIRCd \- the "next generation" IRC daemon
.SH SYNOPSIS
-.B ngircd [
+.B ngircd
+[
.I Options
-.B ]
+]
.SH DESCRIPTION
.BR ngIRCd
-is a free open source daemon for the Internet Relay Chat (IRC),
-developed under the GNU General Public License (GPL).
+is a free, portable and lightweight Internet Relay Chat (IRC) server for small
+or private networks, developed under the GNU General Public License (GPL).
.PP
-It's written from scratch and is not based upon the original IRCd like
-many others. It is easy to configure, supports server links (even with
-original ircd's) and runs on hosts with changing IP addresses (such as
-dial-in networks).
+The server is quite easy to configure and runs as a single-node server or can
+be part of a network of ngIRCd servers in a LAN or across the internet. It
+optionally supports the IPv6 protocol, SSL/TLS-protected client-server and
+server-server links, the Pluggable Authentication Modules (PAM) system for user
+authentication, IDENT requests, and character set conversion for legacy
+clients.
.PP
-Currently supported platforms include AIX, A/UX, FreeBSD, HP-UX, IRIX,
-Linux, Mac OS X, NetBSD, OpenBSD, Solaris, and Windows with Cygwin.
+The name ngIRCd stands for
+.IR "next-generation IRC daemon",
+which is a little bit exaggerated:
+.IR "lightweight Internet Relay Chat server"
+most probably would have been a better name :-)
.PP
-As ngIRCd relies on UNIX standards and uses GNU automake and GNU autoconf
-there are good chances that it also supports other UNIX-based operating
-systems as well. By default, ngIRCd writes diagnostic and informational messages using
-the syslog mechanism.
+By default ngIRCd logs diagnostic and informational messages using the syslog
+mechanism, or writes directly to the console when running in the foreground
+(see below).
.SH OPTIONS
-The default behaviour of
+The default behavior of
.BR ngircd
is to read its standard configuration file (see below), to detach from the
controlling terminal and to wait for clients.
Disable automatic connections to other servers. You can use the IRC command
CONNECT later on as IRC Operator to link this ngIRCd to other servers.
.TP
+\fB\-y\fR, \fB\-\-syslog\fR
+Write log messages to the syslog even when running in the foreground. This only
+makes sense when
+.I \-n/\-\-nodaemon
+was given on the command line
+.I before
+this option!
+.PP
+The following options prevent ngIRCd from starting regularly, but perform a
+specific action and then exit the daemon again:
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display a brief help text and exit.
+.TP
\fB\-t\fR, \fB\-\-configtest\fR
Read, validate and display the configuration; then exit.
.TP
\fB\-V\fR, \fB\-\-version\fR
Output version information and exit.
-.TP
-\fB\-h\fR, \fB\-\-help\fR
-Display a brief help text and exit.
.SH FILES
.I :ETCDIR:/ngircd.conf
.RS
.RS
Default "message of the day" (MOTD).
.RE
+.SH SIGNALS
+The daemon understands the following signals:
+.TP
+\fBTERM\fR
+Shut down all connections and terminate the daemon.
+.TP
+\fBHUP\fR
+Shut down all listening sockets, re-read the configuration file and
+re-initialize the daemon.
.SH HINTS
-It's wise to use "ngircd \-\-configtest" to validate the configuration file
-after changing it.
+It is
+.I always wise
+to use "ngircd \-\-configtest" to validate the configuration of ngIRCd after
+making changes to the configuration files!
+.SH DEBUGGING
+When ngIRCd is compiled with debug code, that is, its source code has
+been ./configure'd with "\-\-enable\-debug" and/or "\-\-enable\-sniffer" (witch
+enables debug mode automatically as well), you can use two more command
+line options and two more signals to debug problems with the daemon itself
+or IRC clients:
+.PP
+\fBOptions:\fR
+.TP
+\fB\-d\fR, \fB\-\-debug\fR
+Enable debug mode and log extra messages.
+.TP
+\fB\-s\fR, \fB\-\-sniffer\fR
+Enable IRC protocol sniffer, which logs all sent and received IRC commands to
+the console/syslog. This option requires that ngIRCd has been ./configure'd
+with "\-\-enable\-sniffer" and enables debug mode automatically, too.
+.PP
+\fBSignals:\fR
+.TP
+\fBUSR1\fR
+Toggle debug mode on and off during runtime.
+.TP
+\fBUSR2\fR
+Dump internal server state to the console/syslog when debug mode is on (use
+command line option \-\-debug or signal USR1).
.SH AUTHORS
Alexander Barton, <alex@barton.de>
.br