bip #1
Description
multiuser irc proxy with conversation replay and more
- Tags:
- chat ›
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 withbipmkpw
, 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
- Juju mailing list
- Juju community
- IRC #bip on OFTC
- Bip FAQ
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" }}}}}}