Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kkartaltepe/gamja
A fork of gamja
https://github.com/kkartaltepe/gamja
Last synced: 2 days ago
JSON representation
A fork of gamja
- Host: GitHub
- URL: https://github.com/kkartaltepe/gamja
- Owner: kkartaltepe
- License: agpl-3.0
- Created: 2022-05-10T16:11:20.000Z (over 2 years ago)
- Default Branch: extras
- Last Pushed: 2022-09-05T03:02:46.000Z (over 2 years ago)
- Last Synced: 2024-12-12T06:05:12.036Z (22 days ago)
- Language: JavaScript
- Size: 765 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# [gamja]
A simple IRC web client.
![screenshot](https://l.sr.ht/7Npm.png)
## Usage
Requires an IRC WebSocket server.
First install dependencies:
npm install --production
Then configure an HTTP server to serve the gamja files. Below are some
server-specific instructions.### [soju]
Add a WebSocket listener to soju, e.g. `listen wss://127.0.0.1:8080`.
Configure your reverse proxy to serve gamja files and proxy `/socket` to soju.
### [webircgateway]
Setup webircgateway to serve gamja files:
```ini
[fileserving]
enabled = true
webroot = /path/to/gamja
```Then connect to webircgateway and append `?server=/webirc/websocket/` to the
URL.### nginx
If you use nginx as a reverse HTTP proxy, make sure to bump the default read
timeout to a value higher than the IRC server PING interval. Example:```
location / {
root /path/to/gamja;
}location /socket {
proxy_pass http://127.0.0.1:8080;
proxy_read_timeout 600s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
```If you are unable to configure the proxy timeout accordingly, or if your IRC
server doesn't send PINGs, you can set the `server.ping` option in
`config.json` (see below).### Development server
If you don't have an IRC WebSocket server at hand, gamja's development server
can be used. For instance, to run gamja on Libera Chat:npm install --include=dev
npm start -- irc.libera.chatSee `npm start -- -h` for a list of options.
### Production build
Optionally, [Parcel] can be used to build a minified version of gamja.
npm install --include=dev
npm run build## Query parameters
gamja settings can be overridden using URL query parameters:
- `server`: path or URL to the WebSocket server
- `nick`: nickname
- `channels`: comma-separated list of channels to join (`#` needs to be escaped)
- `open`: [IRC URL] to open
- `debug`: if set to 1, debug mode is enabledAlternatively, the channels can be set with the URL fragment (ie, by just
appending the channel name to the gamja URL).## Configuration file
gamja default settings can be set using a `config.json` file at the root:
```js
{
// IRC server settings.
"server": {
// WebSocket URL or path to connect to (string).
"url": "wss://irc.example.org",
// Channel(s) to auto-join (string or array of strings).
"autojoin": "#gamja",
// Controls how the password UI is presented to the user. Set to
// "mandatory" to require a password, "optional" to accept one but not
// require it, "disabled" to never ask for a password, or "external" to
// use SASL EXTERNAL. Defaults to "optional".
"auth": "optional",
// Default nickname (string).
"nick": "asdf",
// Don't display the login UI, immediately connect to the server
// (boolean).
"autoconnect": true,
// Interval in seconds to send PING commands (number). Set to 0 to
// disable. Enabling PINGs can have an impact on client power usage and
// should only be enabled if necessary.
"ping": 60
}
}
```## Contributing
Send patches on the [mailing list], report bugs on the [issue tracker]. Discuss
in [#soju on Libera Chat].## License
AGPLv3, see LICENSE.
Copyright (C) 2020 The gamja Contributors
[gamja]: https://sr.ht/~emersion/gamja/
[soju]: https://soju.im
[webircgateway]: https://github.com/kiwiirc/webircgateway
[mailing list]: https://lists.sr.ht/~emersion/public-inbox
[issue tracker]: https://todo.sr.ht/~emersion/gamja
[Parcel]: https://parceljs.org
[IRC URL]: https://datatracker.ietf.org/doc/html/draft-butcher-irc-url-04
[#soju on Libera Chat]: ircs://irc.libera.chat/#soju