This is ohnx's fork of quassel-webserver, A web client for Quassel (requires a running quasselcore)
It includes a few modifications over the original:
- Circles now reflect the status of the user (following IRCCloud colours)
- A greyed-out name is a name of someone who is away
- Add who is pinging you in IRC notifications
- Have a sound played when you are pinged in IRC
- Use a regular space instead of a nbsp when tabcompleting
- Tweak the clipboard copying format to resembly other IRC clients
- Change up the colour scheme a bit
- Uploading pasted images to imgur (i.e. in GitHub issues, you can paste an image and the image will upload automatically from your clipboard... quassel-ws will now do the same thing)
❗ Your node version should be at least v4.x (v4, v5, v6 and v7 are supported). To install node last version, you can run :
npm -g install n
n latest
With npm:
npm install quassel-webserver
With snap, in any of the supported Linux distributions: (Note that this is not yet stable)
snap install quassel-webserver --candidate
Get the code and install the server with:
git clone https://github.com/magne4000/quassel-webserver.git
cd quassel-webserver
npm install --production
Update the server with:
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
.
All available settings are described in settings.js
file.
You must 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
Usage: app [options]
Options:
-h, --help output usage information
-V, --version output the version number
-c, --config <value> Path to configuration file
-s, --socket <path> listen on local socket. If this option is set, --listen, --port and --mode are ignored
-l, --listen <value> listening address [0.0.0.0]
-p, --port <value> http(s) port to use [64080|64443]
-m, --mode <value> http mode (http|https) [https]
Startup scripts are available in scripts
directory.
# SysVinit
cp scripts/startup /etc/init.d/quasselweb
# systemd
cp scripts/quassel-webserver.service /lib/systemd/system/quassel-webserver.service
For the sysvinit script, be sure to change BASEDIR
, RUNASUSER
and RUNASGROUP
vars.
For the systemd script, you must customize ExecStart
, User
and Group
to suit your needs.
Just go to https://your.tld:64443 and enter your quasselcore information and credentials.
If you want to access quassel-webserver behind a reverse proxy, here are some tips.
You can launch quassel-webserver in local socket mode by adding -s <path/to/qws.run>
to the command line. The specified path must point to a non-existent file, as it will be created by the application.
You can launch quassel-webserver in http mode by adding -m http
to the command line.
This tells the webserver to run in http
mode, and to listen on port 64080
.
This way you can let your apache
or nginx
server handle the SSL layer.
Reverse proxy on https://your.tld/quassel
If you run behind /quassel
location on your webserver, do not forget to edit settings-user.js
file
...
prefixpath: '/quassel',
...
Also, be sure to launch quassel-webserver in http mode by adding -m http
to the command line, optionally including -l localhost
to block direct outside connections from bypassing the proxy server.
You can also start quassel-webserver in socket mode by instead specifying -s <path/to/qws.run>
.
upstream quassel {
server http://127.0.0.1:64080
# or for socket, uncomment following line, and comment previous line
# server unix:/path/to/qws.run;
}
# rewrite ^[/]quassel$ /quassel/ permanent;
location /quassel {
proxy_pass http://quassel/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;
}
You will need mod_proxy_wstunnel and mod_rewrite.
<VirtualHost ...>
...
RewriteEngine on
RewriteRule /quassel/p/socket(.*) ws://127.0.0.1:64080/quassel/p/socket$1 [P,L]
ProxyPass /quassel http://127.0.0.1:64080/quassel
...
</VirtualHost>
Apache doesn't support yet reverse proxying unix socket with http+websocket backend.
This is a known issue but there is a workaround:
- go to the
General Configuration
and checkTrim buffer when switching to another buffer
. This is also configurable insettings-user.js
file (seesettings.js
)
It means that quassel-webserver has been killed prematurely. You just have to manually delete <path/to/qws.run>
file.
#quassel-webserver
on Freenode
Copyright (c) 2014-2016 Joël Charles
Licensed under the MIT license.