README 4.24 KB
Newer Older
blabouncer - An IRC bouncer written in C
Luke Bratch's avatar
Luke Bratch committed

== Running ==

To run from the current directory once compiled run "./blabouncer".

Run with command line arguments like so:
./blabouncer [-f] [-c /path/to/blabouncer.conf]

-f sets foreground mode (without this, blabouncer will detach and run in the background as a daemon)
-c sets a path to a configuration file
All arguments are optional, but they must be specified in the order shown above if given.
Luke Bratch's avatar
Luke Bratch committed
== Configuration ==

An example configuration file is provided named "blabouncer.conf.example".
Configuration options are either simple single string options, or multiple line arrays.  The usage is
explained in the example configuration file.

If you don't specify one using "-c /path/to/configuration/file" then the example one will be created
for you at $HOME/.blabouncer/blabouncer.conf when starting for the first time.
Certain configuration options can be changed at runtime by changing them in the configuration file, then
issuing a BLABOUNCER REHASH command, or by sending SIGHUP to the blabouncer process.  This will also
reload the client-side TLS certificate and key if clienttls = "1".
These options can be changed by issuing a BLABOUNCER REHASH command or by sending SIGHUP to blabouncer:
 - alertconnect
 - alertauthfail
 - alertauthsuccess
 - alertunautheddisconnect
 - alertautheddisconnect
Luke Bratch's avatar
Luke Bratch committed
== Commands ==

Once connected to blabouncer with an IRC client, you can use the following special blabouncer commands:
Luke Bratch's avatar
Luke Bratch committed

"BLABOUNCER REPLAY [[[days:]hours:]minutes]" (To replay a given length of time of replay log.)
"BLABOUNCER QUIT [quit message]" (To quit blabouncer, optionally sending [quit message] to the server.)
"BLABOUNCER REHASH" (To reload configuration file settings and the client-side TLS certificate/key - see above for details.)
"BLABOUNCER CLIENTCODE [clientcode]" (To set an identifier for the current client for auto replaying just
what this client has missed.)
"BLABOUNCER LISTCLIENTS" (To list all connected clients and their authentication status.)
"BLABOUNCER DISCONNECT [FD]" (To disconnect a client with file descriptor number [FD] (see LISTCLIENTS
output).)
"BLABOUNCER VERSION" (To show the current blabouncer version.)
Luke Bratch's avatar
Luke Bratch committed

Blabouncer commands are all prefixed with BLABOUNCER which you can usually send using "/QUOTE BLABOUNCER".

== Replaying history ==

You can request that history is replayed at any time by using the command BLABOUNCER REPLAY
[[[days:]hours:]minutes], assuming replaylogging is enabled in blabouncer.conf.

In addition, you can have history automatically replayed upon a client connecting.  There are multiple
automatic replay methods available by setting "replaymode" in blabouncer.conf:
  Don't auto replay logs at all.

- "time"
  Always send the last "replayseconds" worth of logs.

- "lastspoke"
  All messages since your current nick last spoke.

- "noclients"
  All messages since you last had no clients connected.

- "lastchange"
  All messages since your last client connection/disconnection.

- "perclient".
  All messages since the current client last disconnected.  Clients are uniquely identified using the
  BLABOUNCER CLIENTCODE command.
  The intention is that a given client (for instance that on a given device) will be configured to send
  BLABOUNCER CLIENTCODE as a connect command automatically, thus getting all replay history since it was
  last connected.

Luke Bratch's avatar
Luke Bratch committed
== Client SSL/TLS ==
To use TLS for client connections, which is enabled by default in the example configuration file, you will
need to provide both a certificate and a key file.

Luke Bratch's avatar
Luke Bratch committed
One way of creating these is to use OpenSSL:

$ openssl genrsa 2048 > ~/.blabouncer/key.pem
$ openssl req -x509 -days 30 -new -key ~/.blabouncer/key.pem -out ~/.blabouncer/cert.pem
But you can create them however you like, or disable client TLS (not recommended) using the "clienttls"
configuration file option.
By default blabouncer looks for the certificate and key files in $HOME/.blabouncer/cert.pem and
$HOME/.blabouncer/key.pem, respectively.
Luke Bratch's avatar
Luke Bratch committed

== Server SSL/TLS ==

Server TLS is also enabled by default in the example configuration file, and can be disabled (not
recommended) using the "servertls" configuration file option.