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

3.0 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: npm install

  4. Configure: npm start

    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: npm start with a process manager.

  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 (npm install).

    You can now run start the server software with a process manager like PM2 (e.g., pm2 start server/main.js --name HackChat). 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.