67P/hyperchannel

Kosmos Chat for the Web

★ 23Forks 3JavaScriptGitHub ↗Compare
activity-streamschatemberemberjsgroup-chatircjavascriptkosmosremotestoragesockethubunhostedxmpp

README

Hyperchannel (alpha!)

Hyperchannel is the unhosted client application of the Kosmos Chat project. It is based on Ember.js, connecting to IRC/XMPP/etc. via Sockethub (WebSockets + ActivityStreams), and optionally syncing configuration and user data via remoteStorage (Webfinger + OAuth + CORS + REST).

Hyperchannel is not yet ready for public use, but contributions are very welcome. If you know JavaScript, and ideally even have experience with Ember.js, it is easy to hack on any feature imaginable. Check the GitHub issues to find things you could start implementing right away.

If you have any questions, please feel free to ask in one of our chatrooms.

Prerequisites

You will need the following things properly installed on your computer.

Installation

Running / Development

Accessing the dev server from another machine

The dev server listens on all interfaces, so it can be reached over a LAN or VPN (e.g. Tailscale/ZeroTier) at http://<dev-machine-address>:4200.

Sockethub is used directly by the browser, so it must also be reachable from the machine running the browser. Bind it to all interfaces by setting sockethub.host to 0.0.0.0 in Sockethub's sockethub.config.json (and set public.host to the address clients use), then start it as usual.

In development, Hyperchannel derives the Sockethub URL from the host serving the app (http://<same-host>:10550), so no URL needs to be hardcoded for remote access.

Code Generators

Make use of the many generators for code, try pnpm exec ember help generate for more details

Caveat: when running the model generator, make sure to adjust the unit test to not use moduleForModel, as we're not using Ember Data. See existing tests.

Running Tests

  • pnpm test
  • pnpm test:ember (single test run)

Linting

  • pnpm lint
  • pnpm lint:fix

Building

  • pnpm build (development)
  • pnpm build-prod (production, into release/)

Deploying

With push permission for the production Git repo:

  • pnpm run deploy

Further Reading / Useful Links

House Rules

Contributor Code of Conduct (TL;DR: Be excellent to each other.)