Skip to content

QuasselCore on Debian 11

date: 2022-02-13


After discovering how amazing wireguard vpn is on Android, I decided to move my quasselcore server off of Ramnode, where I was securing it with LetsEncrypt Certs, and instead run it on a double-natted kvm host on my home server where I could give it more ram and cpu, and back up the entire vm image to my backup-backup server using syncoid and zfs snapshots.

But there are a few little niggles, so I am writing it down.

Install Packages

apt install postgresql postgresql-contrib quasselcore libqt5sql5-psql apparmor-utils

stop quasselcore

systemctl stop quasselcore

allow quasselcore in apparmor

so quasselcore user can read it's own configuration directory

aa-complain /usr/bin/quasselcore
systemctl restart apparmor

postgresql socket connection

If you want to use Postgresql socket connection because why wouldn't you, allow md5 authentication in pg_hba.conf

# /etc/postgresql/13/main/pg_hba.conf
local   quassel         quassel                                 md5
systemctl restart postgresql

Copy the Postgresql Database

dump database on old/previous server

pg_dump -d quassel -f quasseldb.sql

create database on new server

postgres# CREATE USER quassel;
postgres# \password quassel
postgres# CREATE DATABASE quassel WITH OWNER quassel;

import database on new server

psql -d quassel -f quasseldb.sql

Configure QuasselCore

sudo quasselcore --configdir=/var/lib/quassel --select-backend=Postgresql
When prompted for postgresql host, you can use /var/run/postgresql if you want to use unix-socket.

Before starting quasselcore, make sure that all the files in /var/lib/quassel are owned by quasselcore:quassel, and they might not be.

For other quasselcore options you can type quasselcore -h, but I chose to use ufw to restrict the client port to the wireguard interface.

ufw allow in on wg1 to any port 4242


To connect to your new quasselcore, open quassel client or quasseldroid and simply change the host name.