goircd/README

89 lines
3.1 KiB
Plaintext
Raw Normal View History

2014-05-11 16:18:55 +00:00
goircd -- minimalistic simple Internet Relay Chat (IRC) server
==============================================================
DESCRIPTION
2014-05-11 16:20:29 +00:00
goircd is very simple IRC server, written on Go.
2014-05-11 16:18:55 +00:00
It is heavily inspired by miniircd daemon written on Python.
2014-05-11 16:20:29 +00:00
It does not aim to replace full featured mass scalable IRC networks:
2014-05-11 16:18:55 +00:00
* It can not connect to other servers. Just standalone installation
* It has few basic IRC commands
2014-05-18 11:34:31 +00:00
* There is no support for channel operators, modes, votes, invites
2014-05-11 16:18:55 +00:00
* No ident lookups, reverse DNS queries
But it has some convincing features:
* Only standard Go libraries, no external requirements
* Single executable binary
* No configuration file, just few command line arguments
* IPv6 out-of-box support
* Ability to listen on TLS-capable ports
2014-05-11 16:18:55 +00:00
* 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)
2015-05-09 15:27:06 +00:00
* Optional ability to authenticate users by nickname and password
2014-05-11 16:18:55 +00:00
Some remarks and recommendations related to it's simplicity:
* Use either nohup or similar tools to daemonize it
* Just plain logging on stderr, without syslog support
SUPPORTED IRC COMMANDS
* PASS/NICK/USER during registration workflow
2014-05-11 16:18:55 +00:00
* PING/PONGs
* NOTICE/PRIVMSG
2014-11-14 20:26:32 +00:00
* AWAY, MOTD, LUSERS, WHO, WHOIS, VERSION, QUIT
2014-05-11 16:18:55 +00:00
* LIST, JOIN, TOPIC, +k/-k channel MODE
USAGE
Just execute goircd daemon. It has following optional arguments:
* -hostname: hostname to show for client's connections
* -bind: address to bind to (:6667 be default)
* -motd: absolute path to MOTD file. It is reread every time MOTD is
requested
* -logdir: directory where all channels messages will be saved. If
omitted, then no logs will be kept
* -statedir: directory where all channels states will be saved and
loaded during startup. If omitted, then states will be
lost after daemon termination
* -tlsbind/-pem: enable TLS, specify address to listen on and path
to PEM file with certificate and private key
* -passwords: enable client authentication and specify path to
passwords file
* -verbose: increase log messages verbosity
2014-05-11 16:18:55 +00:00
TLS
If you specify -bind and -tlsbind simultaneously, then you will have
both raw and encrypted listening sockets. You can use -bind "" to
disable raw socket.
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.
2014-05-11 16:18:55 +00:00
LICENCE
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.