Quassel as an IRC bouncer

If you use IRC, and you haven’t heard of Quassel, you should take a look at it. It’s official site is here: http://www.quassel-irc.org/.


But to summarize, and yes I’m lifting from the official site:

Quassel IRC is a modern, cross-platform, distributed IRC client, meaning that one (or multiple) client(s) can attach to and detach from a central core – much like the popular combination of screen and a text-based IRC client such as WeeChat, but graphical. In addition to this unique feature, we aim to bring a pleasurable, comfortable chatting experience to all major platforms (including Linux, Windows, and MacOS X as well as Qtopia-based cell phones and PDAs), making communication with your peers not only convenient, but also ubiquitous available.

And the best of all: It’s free - as in beer and as in speech, since we distribute Quassel under the GPL, and you are welcome to download and see for yourself!

I’d like to recommend anybody who uses IRC bouncers to consider this option. You get a couple of benefits:

  1. Full graphical interface
  2. Nice default display of chat text and channels
  3. Full recording of history (on the server)
  4. Always online (same as an IRC bouncer)
  5. Full control (you run the server)

There is one con though:

  1. CTCP file transfers do not work.

Basically you get an out-of-the-box experience that is pretty awesome, with the powers that come with running a bouncer. Additionally, almost every part of the interface can be configured/adjusted.

At the same time, you don’t get the “replay” look of using an IRC bouncer, as that is simply not how Quassel works. You may think of Quassel as storing the entire state of your session and then giving you that state as though you really were eternally connected. On the other hand, when you connect to a bouncer, they just dump the chats that you missed to you.

You may say that all this is just UI (in a sense), and you’ll be right. But personally, it is the UI that encompasses the entire IRC experience.

Quassel’s Server Component

If you want Quassel to act as a always-online “bouncer”, you need to run the server component of Quassel on an always-connected server, obviously. The installation of Quassel on Ubuntu is incredibly simple, with a repository package having been made available on apt-get.

apt-get install quassel-core

It is not the aim of this post to be a walk-through for installing Quassel on the server. The online documentation is fairly helpful, and the repository package makes it rather easy.

Quassel’s Client Component

As mentioned, Quassel is multi-platform. You need to download the appropriate client for your platform. That may be found from the Quassel official site, or if you’re on Ubuntu or similar, you can use apt-get again:

apt-get install quassel-client

Multi-User Support

One thing to note is that Quassel has already implemented multi-user support (if you want to host yourself and your friends, for example, on the same server instance). However, the out-of-the-box multiple user management does not work, both in the command line version, as well as the script-based version (manageusers.py) that can be found in the Quassel package scripts directory (you need to grab the source package for this, as of Quassel 0.8.0).

Hence, you may encounter difficulty adding new users.

I have here a modified version of the script that comes with the package that works much better. It implements the adding, deleting and change password functionality, as well as listing all the current users. It also updates the list of possible paths that your user database is stored.

The script is written in Python. The Github repository may be found here:

Github: https://github.com/eugeii/quassel-manage-users.git