X-Git-Url: http://www.git.cypherpunks.ru/?p=goircd.git;a=blobdiff_plain;f=README;h=e9c5eb110a785cce6b2886f68a83cf0ec7dfae63;hp=663aaf30096e91a020217eded12b328025acdc3f;hb=b7fb219307483d2c31b5dad1f559f325f2fd1a5e;hpb=def58d0f4944397faa8cdd4a9cf3515125e0b548 diff --git a/README b/README index 663aaf3..e9c5eb1 100644 --- a/README +++ b/README @@ -10,7 +10,7 @@ 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 no support for channel operators, modes, votes, invites +* There is no support for channel operators, many modes, votes, invites * No ident lookups But it has some convincing features: @@ -19,8 +19,8 @@ But it has some convincing features: * 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 +* Ability to additionally listen on TLS-capable ports +* Optional channels 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) @@ -28,35 +28,42 @@ But it has some convincing features: 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 +* Use daemontools to daemonize, setuid/gid it +* Just plaintext logging to stdout, without syslog support -- use + daemontool's multilog SUPPORTED IRC COMMANDS * PASS/NICK/USER during registration workflow * PING/PONGs * NOTICE/PRIVMSG, ISON -* AWAY, MOTD, LUSERS, WHO, WHOIS, VERSION, QUIT +* AWAY, MOTD, LUSERS, NAMES, WHO, WHOIS, VERSION, WALLOPS, QUIT * 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 by 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: enable TLS, specify address to listen on and path - -tlspem to PEM file with certificate and private key - -passwords: enable client authentication and specify path to - passwords file - -v: increase verbosity + -hostname: hostname to show for client's connections + -bind: address to bind to (:6667 by default) + -cloak: cloak user's host with the given hostname + -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: enable TLS, specify address to listen on and path + -tlspem: to PEM file with certificate and private key + -passwd: enable client authentication and specify path to + passwords file + -timestamped: enabled timestamps for stderr messages + -verbose: increase verbosity + -debug: also show traffic messages + -perm-state-dir: permission (before umask) for newly created state directory +-perm-state-file: permission (before umask) for newly created state file + -perm-log-file: permission (before umask) for newly created log file TLS @@ -69,10 +76,12 @@ 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 + login1:hex(sha256(password1))\n + login2:hex(sha256(password2))\n ... +You can get hashed password value using: echo -n password | sha256 + LOG FILES Log files are not opened all the time, but only during each message @@ -80,13 +89,8 @@ saving. That is why you can safely rename them for rotation purposes. STATE FILES -Each state file has the name equals to room's one. It contains two plain -text lines: room's topic and room's authentication key (empty if none -specified). For example: - - $ cat states/meinroom - This is meinroom's topic - secretkey +Room's state is created/saved when either topic or key is set. State is +a directory (room's name) with "topic" and "key" plaintext files. LICENCE