Biboumi

Biboumi is an XMPP gateway to IRC. Its goal is to let XMPP users use their favorite client to participate in IRC discussions.

Features:

  • Unlimited number of XMPP users can connect to an unlimited number of IRC servers
  • Persistent connections like an IRC bouncer
  • Basic channel management features
  • Private chats, notices, CTCP version and ping, IRC colors, and invitations
  • Channel listing and automatic nickserv identification
  • Supports TLS to IRC servers
  • Embedded identd server

Installing with libuuid

This method requires compiling libuuid. however it doesn't require extra programs like git or e2fsprogs. if you installed biboumi using pervious method there is no need to install it using this method

Installing Dependencies

$ doas pkg_add cmake botan2 sqlite3 udns

compiling

$ ftp https://dl.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz
$ tar xvzf libuuid-1.0.3.tar.gz
$ cd libuuid-1.0.3
$ ./configure
$ make
$ doas make install

and install biboumi

$ ftp https://git.louiz.org/biboumi/snapshot/biboumi-9.0.tar.xz
$ unxz biboumi-9.0.tar.xz
$ tar xvf biboumi-9.0.tar
$ cd biboumi-9.0

Modify CMakeLists.txt file to add -L/usr/lib and -L/usr/local/lib flags during linking.

$ sed -i 's/^target_link_libraries(${PROJECT_NAME}/target_link_libraries(${PROJECT_NAME} -L\/usr\/lib -L\/usr\/local\/lib/' CMakeLists.txt

Then continue configuring then compile biboumi, we disable postgresql (we use sqlite instead), systemd and udns (seems to broken as of OpenBSD 7.5):

$ mkdir build ; cd build
$ cmake .. -DWITHOUT_{POSTGRESQL,SYSTEMD,UDNS}=1 && make
$ ./biboumi

Installing without libuuid

Installing Dependencies

First we install the dependencies:

$ doas pkg_add cmake e2fsprogs sqlite3 libidn botan2 git

Building

Next, we download, unzip, and extract the tarball; then we build biboumi:

$ ftp https://git.louiz.org/biboumi/snapshot/biboumi-9.0.tar.xz
$ unxz biboumi-9.0.tar.xz
$ tar xvf biboumi-9.0.tar
$ cd biboumi-9.0

Modify CMakeLists.txt file to add -L/usr/lib and -L/usr/local/lib flags during linking.

$ sed -i 's/^target_link_libraries(${PROJECT_NAME}/target_link_libraries(${PROJECT_NAME} -L\/usr\/lib -L\/usr\/local\/lib/' CMakeLists.txt

you could also use:

export LINK_DIRECTORIES=/usr/local/lib

Then continue configuring then compile biboumi

$ cmake . -DWITHOUT_{POSTGRESQL,SYSTEMD}=1 && make

Configuring Biboumi

Here is a sample configuration:

hostname=irc.example.com
password=PASSWORD
xmpp_server_ip=127.0.0.1
port=5347
admin=admin@example.com
realname_customization=true
realname_from_jid=false
log_file=/var/log/biboumi.log
ca_file=/etc/ssl/cert.pem
outgoing_bind=192.0.2.1

you can also make biboumi to connect to *only one* server, by adding:

fixed_irc_server=irc.ircnow.org

Make sure to replace irc.example.com with your actual hostname, and replace admin@example.com with the admin's actual jid. Replace 192.0.2.1 with your public (ddos-filtered) IP address.

sometimes setting policy.txt is also required, otherwise you'll be getting errors about TLS:

[Write the following as policy.txt if needed]

require_cert_revocation_info = false
use_ecc_point_compression = true

Configuring XMPP Server

Prosody

For install, you will need to update /etc/prosody/prosody.cfg:

Component "irc.example.com"
        component_secret = "PASSWORD"

Replace irc.example.com with the hostname above.

Running Biboumi

$ mkdir -p ~/.config/biboumi
$ ./biboumi