]> Cypherpunks.ru repositories - goircd.git/blob - README
Split long lines
[goircd.git] / README
1      goircd -- minimalistic simple Internet Relay Chat (IRC) server
2      ==============================================================
3
4 DESCRIPTION
5
6 goircd is very simple IRC server, written on Go.
7 It is heavily inspired by miniircd daemon written on Python.
8 It does not aim to replace full featured mass scalable IRC networks:
9
10 * It can not connect to other servers. Just standalone installation
11 * It has few basic IRC commands
12 * There is no support for channel operators, modes, votes, invites
13 * No ident lookups, reverse DNS queries
14
15 But it has some convincing features:
16
17 * Only standard Go libraries, no external requirements
18 * Single executable binary
19 * No configuration file, just few command line arguments
20 * IPv6 out-of-box support
21 * Ability to listen on TLS-capable ports
22 * Optional channel logging to plain text files
23 * Optional permanent channel's state saving in plain text files
24   (so you can reload daemon and all channels topics and keys won't
25   disappear)
26 * Optional ability to authenticate users by nickname and password
27
28 Some remarks and recommendations related to it's simplicity:
29
30 * Use either nohup or similar tools to daemonize it
31 * Just plain logging on stderr, without syslog support
32
33 SUPPORTED IRC COMMANDS
34
35 * PASS/NICK/USER during registration workflow
36 * PING/PONGs
37 * NOTICE/PRIVMSG
38 * AWAY, MOTD, LUSERS, WHO, WHOIS, VERSION, QUIT
39 * LIST, JOIN, TOPIC, +k/-k channel MODE
40
41 USAGE
42
43 Just execute goircd daemon. It has following optional arguments:
44
45 * -hostname: hostname to show for client's connections
46 * -bind: address to bind to (:6667 be default)
47 * -motd: absolute path to MOTD file. It is reread every time MOTD is
48          requested
49 * -logdir: directory where all channels messages will be saved. If
50            omitted, then no logs will be kept
51 * -statedir: directory where all channels states will be saved and
52              loaded during startup. If omitted, then states will be
53              lost after daemon termination
54 * -tlsbind/-pem: enable TLS, specify address to listen on and path
55                  to PEM file with certificate and private key
56 * -passwords: enable client authentication and specify path to
57               passwords file
58 * -verbose: increase log messages verbosity
59
60 TLS
61
62 If you specify -bind and -tlsbind simultaneously, then you will have
63 both raw and encrypted listening sockets. You can use -bind "" to
64 disable raw socket.
65
66 AUTHENTICATION
67
68 You can turn on optional client authentication by preparing passwords
69 file and using the -passwords argument. Format of passwords file is:
70
71     login1:password1\n
72     login2:password2\n
73     …
74
75 You can force rereading of passwords file without server interruption by
76 sending HUP signal to him.
77
78 LICENCE
79
80 This program is free software: you can redistribute it and/or modify
81 it under the terms of the GNU General Public License as published by
82 the Free Software Foundation, either version 3 of the License, or
83 any later version.
84
85 This program is distributed in the hope that it will be useful,
86 but WITHOUT ANY WARRANTY; without even the implied warranty of
87 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
88 GNU General Public License for more details.