In this post I explain how I installed the IRC client Quassel on my CentOS 7 server.
What is Quassel?
Quassel is an IRC client with both a server and client component. It is
possible to install
quassel-core (the server component) locally on your
laptop and then connect
quassel-client to localhost. However, that pretty
much defeats the purpose of Quassel, and you might as well run something like
HexChat in that case.
The advantage with Quassel’s server-client model is that the client can be offline while the server stays connected and acts as a bouncer. You appear as constantly connected and when the client reconnects to the core the chat history is retrieved.
To install EPEL on CentOS, execute the following command:
yum install epel-release
Install Quassel Core
Then install Quassel Core on the server:
yum install quassel-core
For PostgreSQL support we also need to install the following two packages:
yum install postgresql-server qt-postgresql
Create a new user
As explained on http://badadmin.net/quassel-core-on-fedora/, we need to create a user for running Quassel:
useradd -r -U quassel mkdir /srv/quassel chown -R quassel:quassel /srv/quassel
Set up the database
On the page https://getpantheon.atlassian.net/wiki/display/PUBLIC/Quassel+IRC there are a set of instructions explaning how to set up a PostgreSQL database for Quassel:
su - postgres -c initdb systemctl start postgresql.service su - postgres -c "createuser quassel" su - postgres -c "createdb --owner=quassel --encoding=UTF8 quassel" su - quassel -c "quasselcore --select-backend=PostgreSQL --configdir=/srv/quassel" # If creating a user fails, run the following: su - quassel -c "quasselcore --add-user"
In addition I also had to add the following three lines to the file
local quassel quassel md5 host quassel quassel 127.0.0.1/32 md5 host quassel quassel ::1/128 md5
Otherwise I would get an authentication error when executing
quasselcore --select-backend=PostgreSQL --configdir=/srv/quassel
quassel user. Do not forget to also restart Postgres if you add those
Generate a certificate
For us to be able to connect to our Quassel core over SSL, we need to generate a self-signed certificate. Do that by running the following command:
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /srv/quassel/quasselCert.pem -out /srv/quassel/quasselCert.pem
Create a systemd unit file
Furthermore as explained on http://badadmin.net/quassel-core-on-fedora/, we
need to create a systemd unit file. Mine at
/etc/systemd/system/quassel.service looks like this:
[Unit] Description=Quassel Core After=network.target [Service] User=quassel Group=quassel PIDFile=/var/run/quassel.pid ExecStart=/usr/bin/quasselcore --require-ssl --configdir=/srv/quassel [Install] WantedBy=multi-user.target
Start Quassel core
Finally start Quassel with the following two commands:
systemctl start quassel systemctl enable quassel
Then see if it is running with the following command:
systemctl status quassel
Install the Quassel client
Now, on your laptop, install the Quassel client. I am running Fedora and I installed it with:
dnf install quassel-client
Then connect to the IP address of your server and a username and password of your choice.