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
2018-05-18 11:05:53 +05:30

3.2 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. Change the directory: cd main

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

    • npm: npm install
    • yarn: yarn install
  4. Configure: node 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. cd into the repository: cd main

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

  3. Launch: client/index.html

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