Quassel
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/
[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