bip #1

Supports: trusty
Add to new model

Description

multiuser irc proxy with conversation replay and more


Overview

Bip is a IRC proxy that supports replaying logged conversation when a client
connects, multiple clients on one irc server connection, It has a handy
logging directory structure. It is multiuser, and has a flexible
configuration. Some of its configuration can be changed at runtime with
special irc commands.

Usage

Bip runs on a single server:

juju deploy bip
juju expose bip

Configuration

Network

  • listenip defines the IP that BIP binds to, defaults to 0.0.0.0

  • listen_port defines the port that BIP listens on, defaults to 7778

  • pid_file defines where the pid files is stored, defaults to /var/run/bip/bip.pid

Logging

  • log_directory is the logging base directory, defaults to /var/log/bip/

  • log_format is the logging format, defaults to "%n/%Y-%m/%c.%d.log"

Backlog

  • backlog_lines is how many lines to keep in the backlog, defaults to 0
    or unlimited

  • backlog_msg_only defines if the backlog will contain just messages,
    or all nick and topic changes etc. Defaults to false

  • backlog_always defines if we backlog messages we've already backlogged,
    defaults to false.

User and Network

  • network defines the available networks, a simple yaml string:

      { "network_name": {host: "irc.somewhere.blah", port: 6667},
        "net_with_ssl": {host: "irc.somewhere.blah", port: 6667, ssl: True}
      }
    
  • user defines the bip users, passwords, and what servers and channels they
    connect to. Note the bip password must be generated with bipmkpw, so
    probably on the bip host before updating the config.

    { "user":
        { password: "password-from-bipmkpw",
            nick: "irc_nick",
            user: "irc_user",
            realname: "irc_real_name",
            server: 
            { "irc_server": 
                { name: "irc_name",
                  network: "irc_network",
                  on_connect_send: "msg Nickserv identify foo"
                  channel:
                    { "test-channel": 
                        { name: "#test-channel",
                          key: "password-for-channel"
                        }
                    }
                }
             }
        }
    }
    

You can repeat the user, irc server and channel options as many times as
you desire. The on_connect_send option is useful for commands you send
on connection, such as identifying with nick services as per the example.

For more details, see the bip.conf manpage on the unit.

Usage

To use bip, connect to the IP of your bip unit, default port is 7778.

Once you connect to the proxy, you then need to connect to the particular
IRC network that you desire by:

/quote pass user:pass:network

where the user and password is defined in the user config variable, and
the network is the IRC network with the channels you want. You will need
to repeat this for each network defined.

Contact Information

Help


Configuration

backlog_lines
(int) Number of lines to replay after connect, 0 will replay all lines.
backlog_msg_only
(string) If bip is backlogging just messages and notices, or all topic changes, nick changes etc.
false
listen_port
(int) bip listening port
7778
listenip
(string) IP to listen on
0.0.0.0
log_directory
(string) Logging base directory
/var/log/bip/
log_format
(string) Log format
%n/%Y-%m/%c.%d.log
network
(string) IRC Networks defined
{"oftc": {host: "irc.oftc.net", port: 6667}, "freenode": {host: "irc.freenode.net", port: 6667}}
pid_file
(string) PID file
/var/run/bip/bip.pid
user
(string) User definitions
{"testuser": {password: "7b2ec816c15cdc9913738b5740e4f5f1803857bc", nick: "testnick", user: "testuser", realname: "Test Realname for bip", server: { "oftc": { name: "oftc", network: "oftc", channel: { "bip": { name: "#bip", key: "testkey"}, "ubuntu": { name: "#ubuntu" }}}}}}