npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

quassel-webserver

v2.2.8

Published

Quassel web interface

Downloads

14

Readme

quassel-webserver

A web client for Quassel (requires a running quasselcore)

:exclamation: 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

Screenshots

Default

default theme

Solarized

solarized theme

Installation

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

Development

Get the code and install the server with:

git clone https://github.com/magne4000/quassel-webserver.git
cd quassel-webserver
npm install --production

Update

Update the server with:

git pull && npm prune && npm update

and run the following command: node app.js

The server is now running.

Settings

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.

Certificate

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

  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]

Init script

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.

In the browser

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

Reverse proxies

If you want to access quassel-webserver behind a reverse proxy, here are some tips.

Socket mode

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.

HTTP mode

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>.

nginx

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;
}

Apache

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.

Troubleshooting

Slow buffer display after some time

This is a known issue but there is a workaround:

  • go to the General Configuration and check Trim buffer when switching to another buffer. This is also configurable in settings-user.js file (see settings.js)

In socket mode : Error: listen EADDRINUSE

It means that quassel-webserver has been killed prematurely. You just have to manually delete <path/to/qws.run> file.

Support

#quassel-webserver on Freenode

License

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