1
0
mirror of https://github.com/hack-chat/main.git synced 2024-03-22 13:20:33 +08:00
hack-chat-main/README.md
Neel Kamath 2bb5ced363 Flatten
2018-05-13 16:09:55 +05:30

3.1 KiB

hack.chat

hack.chat is a minimal, distraction-free, accountless, logless, disappearing chat service which is easily deployable as your own service. The client comes bundled with LaTeX rendering provided by KaTeX.

A list of software developed for the hack.chat framework can be found at the 3rd party software list repository. This includes bots, clients, docker containers, etc.

This is a backwards compatible continuation of the work by Andrew Belt. The server code has been updated to ES6 along with several new features including new commands and hot-reload of the commands/protocol. There is also documentation and a changelog.

Installation

Prerequisites

Installing

  1. Clone the repository: git clone https://github.com/hack-chat/main.git

  2. Install the dependencies using a package manager of your choice:

    • npm: npm install
    • yarn: yarn install
  3. Configure: node main/server/main.js

    If you change the websocketPort option during the config setup then these changes will need to be reflected on line 59 of client.js.

Usage

  1. Start the server with a process manager. For example, with PM2: pm2 start main/server/main.js --name HackChat

  2. Launch: main/client/index.html

  3. (OPTIONAL) If you want to deploy your hack.chat instance to a server, push everything except the node_modules directory and install the dependencies using a package manager of your choice:

    • npm: npm install
    • yarn: yarn install

    You can now run start the server software with a process manager. The client code will need to be copied into your http server directory. If you plan on using SSL to serve the client; you will need to use a reverse proxy, as TLS is not natively supported by the hack.chat server software (this may change in future releases).

Contributing

  • If you are modifying commands, make sure it is backwards compatible with the legacy client and you update the documentation accordingly.
  • Use the template to learn how to create new commands.
  • Use two space indents.
  • Name files in camelCase.
  • Scripts that do not default to strict mode (such as modules) must use the 'use strict' directive.

Credits

License

This project is licensed under the WTFPL License.