{"_id":"@binsky/quassel-webserver","name":"@binsky/quassel-webserver","dist-tags":{"latest":"3.0.2"},"versions":{"3.0.2":{"name":"@binsky/quassel-webserver","description":"Quassel web interface","version":"3.0.2","homepage":"https://github.com/binsky08/quassel-webserver","license":"MIT","author":{"name":"Joël Charles","email":"joel.charles91@gmail.com"},"repository":{"type":"git","url":"git://github.com/binsky08/quassel-webserver.git"},"bugs":{"url":"https://github.com/binsky08/quassel-webserver/issues"},"licenses":[{"type":"MIT","url":"https://github.com/binsky08/quassel-webserver/blob/master/LICENSE-MIT"}],"type":"module","scripts":{"start":"node app.js","dev":"nodemon app.js -m http -p 64111"},"engines":{"node":">= 16"},"keywords":["quassel","webserver","quassel-webserver"],"dependencies":{"@binsky/libquassel":"^3.1.9","body-parser":"^1.20.2","commander":"^11.1.0","cookie-parser":"^1.4.6","express":"^4.18.2","less":"^4.2.0","less-middleware":"^3.1.0","morgan":"^1.10.0","pug":"^3.0.2","resolve-esm":"^2.0.3","serve-favicon":"~2.5.0","untildify":"^5.0.0","ws":"^8.14.2","@httptoolkit/httpolyglot":"^2.1.1"},"optionalDependencies":{"@httptoolkit/httpolyglot":"^2.1.1"},"devDependencies":{"nodemon":"^3.0.1"},"_id":"@binsky/quassel-webserver@3.0.2","gitHead":"94a0947fd8d22262ddd70b10413e5e696237ef6b","_nodeVersion":"20.5.1","_npmVersion":"9.8.0","dist":{"integrity":"sha512-JGBwDxiXGpZoWYZLaeiYaEaEHt92GRlzgJ6CgwGkHuUtrXa5RwvPxdYjHpy9QheyvIY6mr/eBjBYkAI27Xq/UQ==","shasum":"49e3ef7e0081024377b6432e58d254eb1b18f26f","tarball":"https://registry.npmjs.org/@binsky/quassel-webserver/-/quassel-webserver-3.0.2.tgz","fileCount":152,"unpackedSize":4422203,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEjeVmMXtnTLLKWNNcKWf+TtK8LPI6zztx4h//mIkYmEAiEApBbOCNokWQXoJmzX4tF4HJGrE/mKRnHE52nniJokCNI="}]},"_npmUser":{"name":"binsky","email":"timo@binsky.org"},"directories":{},"maintainers":[{"name":"binsky","email":"timo@binsky.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/quassel-webserver_3.0.2_1699286218903_0.5051977449695486"},"_hasShrinkwrap":false}},"time":{"created":"2023-11-06T15:56:58.832Z","3.0.2":"2023-11-06T15:56:59.202Z","modified":"2023-11-06T15:56:59.466Z"},"maintainers":[{"name":"binsky","email":"timo@binsky.org"}],"description":"Quassel web interface","homepage":"https://github.com/binsky08/quassel-webserver","keywords":["quassel","webserver","quassel-webserver"],"repository":{"type":"git","url":"git://github.com/binsky08/quassel-webserver.git"},"author":{"name":"Joël Charles","email":"joel.charles91@gmail.com"},"bugs":{"url":"https://github.com/binsky08/quassel-webserver/issues"},"license":"MIT","readme":"⚠️ This project is not actively maintained\n\n# quassel-webserver\nA web client for Quassel (requires a running quasselcore)\n\n:exclamation: Your node version should be at least v16 (v20 recommended).\nTo install node last version, you can install [nvm](https://github.com/creationix/nvm).\n\n### Screenshots\n\n#### Default\n![default theme](https://github.com/magne4000/magne4000.github.com/raw/master/images/quassel-default-1.png)\n\n#### Solarized\n![solarized theme](https://github.com/magne4000/magne4000.github.com/raw/master/images/quassel-solarized-1.png)\n\n### Installation\n\n**With git:**\n\n```sh\ngit clone https://github.com/magne4000/quassel-webserver.git\ncd quassel-webserver\nnpm install --production\n```\n\n**With snap:**  \nin any of the [supported Linux distributions](http://snapcraft.io/docs/core/install#ubuntu):\n(Note that this is not yet stable)\n\n```sh\nsnap install quassel-webserver --candidate\n```\n\n**On NixOS:**  \nThere is a NixOS module available in NixOS 17.03 and above. Just add these lines to your /etc/nixos/configuration.nix\n\n```nix\n  services.quassel-webserver = {\n    enable = true;\n  };\n```\n\nFor more configuration options in NixOS check out `man configuration.nix`.\n\n### Development\nGet the code and install the server with: \n```sh\ngit clone https://github.com/magne4000/quassel-webserver.git\ncd quassel-webserver\nnpm install\n```\n#### Update\nUpdate the server with: \n```sh\ngit pull && npm prune && npm update\n```\n\nand run the following command: `node app.js`\n\nThe server is now running.\n\n#### Settings\nIt is recommended to copy settings.cjs file to a new settings-user.cjs file\n```\ncp settings.cjs settings-user.cjs\n```\nFile `settings-user.cjs` can then be modified to specify default quasselcore `host` and `port`.  \nAll available settings are described in `settings.cjs` file.\n\n#### Certificate\nYou must use your own certificate for https mode. The key file is located at ssl/key.pem, and the certificate ssl/cert.pem.\n\nYou can generate a new self signed certificate with the following command:\n```\nopenssl req -x509 -newkey rsa:2048 -keyout ssl/key.pem -out ssl/cert.pem -nodes\n```\n\n#### Usage\n```\n  Usage: app [options]\n\n  Options:\n\n    -h, --help            output usage information\n    -V, --version         output the version number\n    -c, --config <value>  Path to configuration file\n    -s, --socket <path>   listen on local socket. If this option is set, --listen, --port and --mode are ignored\n    -l, --listen <value>  listening address [0.0.0.0]\n    -p, --port <value>    http(s) port to use [64080|64443]\n    -m, --mode <value>    http mode (http|https) [https]\n```\n\n#### Init script\nStartup scripts are available in `scripts` directory.\n```\n# SysVinit\ncp scripts/startup /etc/init.d/quasselweb\n# systemd\ncp scripts/quassel-webserver.service /lib/systemd/system/quassel-webserver.service\n```\nFor the sysvinit script, be sure to change `BASEDIR`, `RUNASUSER` and `RUNASGROUP` vars.  \nFor the systemd script, you must customize `ExecStart`, `User` and `Group` to suit your needs.\n\n### In the browser\nJust go to https://your.tld:64443 and enter your quasselcore information and credentials.\n\n### Reverse proxies\nIf you want to access quassel-webserver behind a reverse proxy, here are some tips.\n\n#### Socket mode\nYou 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.\n\n#### HTTP mode\nYou can launch quassel-webserver in http mode by adding `-m http` to the command line.\nThis tells the webserver to run in `http` mode, and to listen on port `64080`.  \nThis way you can let your `apache` or `nginx` server handle the SSL layer.\n\n#### Reverse proxy on https://your.tld/quassel\nIf you run behind `/quassel` location on your webserver, do not forget to edit `settings-user.cjs` file\n```json\n...\nprefixpath: '/quassel',\n...\n```\nAlso, 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.\nYou can also start quassel-webserver in socket mode by instead specifying `-s <path/to/qws.run>`.\n#### nginx\n```nginx\nupstream quassel {\n    server http://127.0.0.1:64080\n    # or for socket, uncomment following line, and comment previous line\n    # server unix:/path/to/qws.run;\n}\n\n# rewrite ^[/]quassel$ /quassel/ permanent;\nlocation /quassel {\n    proxy_pass http://quassel/quassel;\n    proxy_set_header Upgrade $http_upgrade;\n    proxy_set_header Connection \"upgrade\";\n    proxy_http_version 1.1;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header Host $host;\n    proxy_redirect off;\n}\n```\n\n#### Apache\nYou will need mod_proxy_wstunnel and mod_rewrite.\n\nTo proxy to a server over TCP:\n\n```apache\n<VirtualHost ...>\n...\nRewriteEngine on\nRewriteCond %{HTTP:Connection} Upgrade [NC]\nRewriteCond %{HTTP:Upgrade} websocket [NC]\nRewriteRule /quassel/(.*) ws://127.0.0.1:64080/quassel/$1 [P,L]\nProxyPass /quassel http://127.0.0.1:64080/quassel\n...\n</VirtualHost>\n```\n\nor to proxy to a unix domain socket:\n\n```apache\n<VirtualHost ...>\n  RewriteEngine On\n  <Location /quassel>\n    RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]\n    RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]\n    RewriteRule .* unix:///var/run/quasselweb.socket|ws://localhost/quassel/$1 [P,L,NE]\n\n    ProxyPass unix:///var/run/quasselweb.socket|http://localhost/quassel\n  </Location>\n</VirtualHost>\n```\n\n(Note that you need the [NE] flag to prevent the \"|\" from being escaped)\n\n### Troubleshooting\n#### Slow buffer display after some time\nThis is a [known issue](https://github.com/magne4000/quassel-webserver/issues/83) but there is a workaround:\n * go to the `General Configuration` and check `Trim buffer when switching to another buffer`. This is also configurable in `settings-user.cjs` file (see `settings.cjs`)\n\n#### In socket mode : Error: listen EADDRINUSE\nIt means that quassel-webserver has been killed prematurely. You just have to manually delete `<path/to/qws.run>` file.\n\n## Support\n`#quassel-webserver` on Freenode\n\n## License\nCopyright (c) 2019 Joël Charles  \nLicensed under the MIT license.\n","readmeFilename":"README.md"}