node package manager


Quassel web interface


A web client for Quassel (requires a running quasselcore)

❗️ Your node (NOT quasselcore) version should be at least v0.12 (v4 and v5 are supported). To install node last version, you can run :

npm -g install n
n latest

Install the server with:

git clone
cd quassel-webserver
npm install --production

or to update git pull && npm prune && npm update

and run the following command: node app.js

The server is now running.

It is recommended to copy settings.js file to a new settings-user.js file

cp settings.js settings-user.js

File settings-user.js can then be modified to specify default quasselcore host and port.
If forcedefault is set to true, host and port will not be editable on client side.
If prefixpath is not empty, the webserver will not be accessible at https://server:64443/ but at https://server:64443prefixpath/;
initialBacklogLimit defines the number of messages that will de retrieved for each buffer on connection.
backlogLimit defines the number of messages that will be retrieved for a buffer on each request to fetch additional backlogs.

You can use your own certificate for HTTPS mode. The key file is located at ssl/key.pem, and the certificate ssl/cert.pem.

You can generate a new self signed certificate with the following command:

openssl req -x509 -newkey rsa:2048 -keyout ssl/key.pem -out ssl/cert.pem -nodes

See the output of the command node app.js --help

You can use a startup script to the app at system startup.

cp scripts/startup /etc/init.d/quasselweb

and then edit the file /etc/init.d/quasselweb and change BASEDIR, RUNASUSER and RUNASGROUP vars.

Just go to https://yourserver:64443 and enter your quasselcore information and credentials

In you run behind /quassel location on your webserver, do not forget to edit settings-user.js file

prefixpath: '/quassel',
# rewrite ^[/]quassel$ /quassel/ permanent;
location /quassel {
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_redirect off;

Needs activated mod_proxy_wstunnel and mod_rewrite

RewriteEngine on
RewriteRule /quassel/p/socket(.*) ws://$1 [P,L]
ProxyPass /quassel

This is a known issue but there is a workaround:

  • go to the General Configuration and check Trim buffer when switching to another buffer

Copyright (c) 2014-2016 Joël Charles
Licensed under the MIT license.