Quassel

From Gentoo Wiki
Jump to:navigation Jump to:search

Quassel is a daemon/headless IRC client written in C++ that supports 24/7 connectivity. Quassel has both a "core" daemon and a client can be used to attached to a running "core" instance. Because of the separation in architecture, the core component can run on the local system, or on another system.

Installation

Emerge

To install:

root #emerge --ask net-irc/quassel

USE flags

With GUI support enabled by default, ebuild includes a sensible USE flag selection for desktop usage. Enable support for URL previews if desired.

USE flags for net-irc/quassel Qt/KDE IRC client supporting a remote daemon for 24/7 connectivity

+dbus Support desktop notifications via the StatusNotifier D-Bus service (used by most modern desktop environments).
+server Build the server binary. If this USE flag is disabled, the 'core' server binary for quassel is not built, and cannot be used. You need this enabled on the server, but you might want to disable it on the client.
bundled-icons Use icon themes bundled with Quassel, rather than depending on system packages.
crypt Support core->network per-channel and per-query blowfish encryption via app-crypt/qca SLOT 2.
gui Build the Qt5 GUI client for quassel. If this USE flag is disabled, the GUI is not built, and cannot be used. You might want to disable this on the server, but you need it enabled on the client.
kde Add support for software made by KDE, a free software community
ldap Add LDAP support (Lightweight Directory Access Protocol)
monolithic Build standalone client with integrated core, no external quasselcore needed. Only useful if you don't want to use Quassel's client/server model. The server and X flags are not needed in this case but it is possible to enable them too.
oxygen Support the Oxygen icon set that was the default for KDE4.
postgres Add support for the postgresql database
spell Add dictionary support
syslog Enable support for syslog
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
urlpreview Use QtWebEngine rendering engine for showing URL thumbnails.

Configuration

Files

OpenRC

Gentoo's Quassel package should come with a useful and fairly self-explanatory file to adjust Quassel's default behavior for OpenRC in the /etc/conf.d/quasselcore configuration file.

systemd

systemd's variables will need to be set in the /usr/lib64/systemd/system/quasselcore.service file. Options will be the same as those used when running Quassel from the CLI and will need to be added as ExecStart= values.

It is not good practice to edit files in the /lib/systemd/system directory. Create a copy in /etc/systemd/system and edit that file. systemd will always source the /etc/systemd/system directory as priority[1] over the same files found in /lib (aka /usr/lib[2]).

root #cp /lib/systemd/system/quasselcore.service /etc/portage/system/
FILE /etc/systemd/system/quasselcore.serviceExample of a default port change
[Unit]
Description=Quassel Core
After=network.target

[Service]
User=quassel
Group=quassel
ExecStart=/usr/bin/quasselcore --configdir=/var/lib/quassel --port=4141

[Install]
WantedBy=multi-user.target

SSL/TLS certificate generation

Create an SSL/TLS certificate:

root #( cd /var/lib/quassel/ && openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout quasselCert.key -out quasselCert.crt && cat quasselCert.{key,crt} > quasselCert.pem )

Usage

Services

OpenRC

To enable Quassel core on start-up:

root #rc-update add quasselcore default

Start Quassel core:

root #/etc/init.d/quasselcore start

systemd

To enable Quassel core on start-up and start the service immediately:

root #systemctl enable --now quasselcore

Client connection

Connect to the core with a Quassel client, and the client will prompt for initial setup configuration, including database credentials. At times it may be necessary to change Quassel's behavior, such as its default listening address, default port, etc.

To change the default port from the CLI:

root #quasselcore --configdir=/var/lib/quassel --port=4141

Other options can be displayed with:

root #quasselcore --help

Troubleshooting

Migrate SQLite to PostgreSQL

Create users in PostgreSQL for Quassel, here a user and database called "quassel" will be used as an example. See PostgreSQL/QuickStart for information on how to do this.

Then setup Quassel with the newly created user:

root #quasselcore --configdir=/var/lib/quassel --select-backend=PostgreSQL

See also

  • Irssi — a powerful text-mode IRC client for connecting to internet relay chat (IRC) networks.
  • WeeChat — a light, extensible, actively maintained, well documented, highly featured text-mode IRC client.