client | ||
server | ||
CHANGELOG.md | ||
DOCUMENTATION.md | ||
LICENSE | ||
README.md | ||
templateCommand.js |
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
- node.js 8.10.0 or higher
Installing
-
Clone the repository:
git clone https://github.com/hack-chat/main.git
-
Change the directory:
cd main/server
-
Install the dependencies using a package manager of your choice:
- npm:
npm install
- yarn:
yarn install
- npm:
-
Configure:
node main.js
If you change the
websocketPort
option during the config setup then these changes will need to be reflected on client.js.
Usage
-
Start the server:
cd main/server/ pm2 start main.js --name HackChat
-
Launch
main/client/index.html
, you may now begin development or deploy to production environment. -
(Optional) Deploy by pushing everything (except the
node_modules
directory) to the server and install the dependencies using the package manager of your choice:- npm:
npm install
- yarn:
yarn install
You can now run start the server software with a process manager like PM2. 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).
- npm:
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.
Credits
- Marzavec - Initial work
- MinusGix - Base updates
- Andrew Belt, https://github.com/AndrewBelt/hack.chat, for original base work
- wwandrew, for finding server flaws (including attack vectors) and submitting
incredibly detailedbug reports - Everyone else who participated in this project.
License
This project is licensed under the WTFPL License.