DESCRIPTION
+goircd is very simple IRC server, written on Go.
It is heavily inspired by miniircd daemon written on Python.
-It is not aimed to replace full featured mass scalable IRC networks:
+It does not aim to replace full featured mass scalable IRC networks:
* It can not connect to other servers. Just standalone installation
* It has few basic IRC commands
-* There is not support for channel operators, modes, votes, invites
+* There is no support for channel operators, modes, votes, invites
and so on
* No ident lookups, reverse DNS queries
* Single executable binary
* No configuration file, just few command line arguments
* IPv6 out-of-box support
+* Ability to listen on TLS-capable ports
* Optional channel logging to plain text files
* Optional permanent channel's state saving in plain text files
(so you can reload daemon and all channels topics and keys won't
disappear)
+* Optional ability to authenticate users by nickname↔password
Some remarks and recommendations related to it's simplicity:
* Use either nohup or similar tools to daemonize it
-* Use either crywrap or similar tools for TLS-capable connections
* Just plain logging on stderr, without syslog support
SUPPORTED IRC COMMANDS
-* NICK/USER during registration workflow
+* PASS/NICK/USER during registration workflow
* PING/PONGs
* NOTICE/PRIVMSG
-* MOTD, LUSERS, WHO, WHOIS, QUIT
+* MOTD, LUSERS, WHO, WHOIS, VERSION, QUIT
* LIST, JOIN, TOPIC, +k/-k channel MODE
USAGE
* -statedir: directory where all channels states will be saved and
loaded during startup. If omitted, then states will be
lost after daemon termination
+* -tls_key/-tls_cert: enable TLS and specify key and certificate file
+* -passwords: enable client authentication and specify path to
+ passwords file
+* -verbose: increase log messages verbosity
+
+AUTHENTICATION
+
+You can turn on optional client authentication by preparing passwords
+file and using the -passwords argument. Format of passwords file is:
+
+ login1:password1\n
+ login2:password2\n
+ …
+
+You can force rereading of passwords file without server interruption by
+sending HUP signal to him.
LICENCE