Quassel

From ArchWiki

Quassel (sometimes referred to as Quassel IRC) is a cross-platform IRC client introduced in 2008. It is dual-licensed under GPLv2 and GPLv3, while most graphical data is licensed under the LGPL and provided by the Oxygen Team. The Quassel client uses the Qt framework for its user interface.

Quassel is split up into two parts by a server-client model; a client and a core. There is also a monolithic version of the official client that does not require a core. The core(server) is the application that actually does the communication with IRC networks, while the client(s) only communicates with the core. This gives the user a flexibility of having the same instance to IRC networks on different clients (e.g. mobile, desktop) at the same time.

Installation

Basic usage

Just install the quassel-monolithic (or quassel-monolithic-qt) package if you only want to use Quassel from a single computer (e.g. for quickly asking for support on Arch IRC channels).

Configuration

Setting up a bouncer (Quassel core) to be permanently online

Install quassel-core on the server and quassel-client (or quassel-client-qt) on your desktop. If the server is headless, you could install quassel-core-smallAUR instead to avoid unnecessary dependencies like X11 libraries.

Generate a certificate (this will be valid for 1 years, after which it needs to be reissued, just change the -days to another value if you so desire):

# openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /var/lib/quassel/quasselCert.pem -out /var/lib/quassel/quasselCert.pem
# chown quassel:quassel /var/lib/quassel/quasselCert.pem

As this is a self-signed certificate, you can type whatever you want in the fields.

Open port 4242 in your firewall.

Start core by starting quassel.service.

Start the client and connect to core:

$ quasselclient

Accept your self-created certificate.

Now set up your IRC-servers and IRC-nicknames on the core.

Note: As this is the first time you connected to the core, you should see a wizard where you can set up the first user-account. If you do not get this wizard, your settings might be messed up, deleting ~/.config/quassel-irc.org/quassel-storage.sqlite will allow the wizard to run but will require you to re-create your configuration.

If you choose to use PostgreSQL as backend you will need to create a database and user for quasselcore.

[postgres]$ psql -c "CREATE USER quassel WITH PASSWORD 'myPassword';"
[postgres]$ psql -c "CREATE DATABASE quassel WITH OWNER quassel ENCODING 'UTF8';"

See also PostgreSQL instruction on Quassel wiki.

Once it all works, you can enable quassel.service to start automatically on system boot.

Setting up multiple clients to connect through the same core

If you want additional users to be able to use the same core, run as the quassel user:

[quassel]$ quasselcore --configdir=/var/lib/quassel --add-user

It will then prompt you for a new account's username and password.

Spell checking

For spell checking, make sure hunspell and a language dictionary for it are installed. Enable it by selecting the check-boxes in Settings > Configure Quassel... > Spell Checking and restarting your client.

Tips and tricks

Viewing logs

In addition to the tools listed in the Quassel wiki, quargAUR allows searching through the database.

Waiting until the network is up to start

By default, quassel.service is only depending on network.target. To wait until the network is up, edit the unit to use network-online.target instead:

/etc/systemd/system/quassel.service.d/network-online.conf
[Unit]
After=
After=network-online.target nss-lookup.target postgresql.service
Wants=
Wants=network-online.target postgresql.service

See also