aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: f2365f97eb1b00d3acfdff9f56a7a0d953d85395 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# Hack.Chat

[https://hack.chat/](https://hack.chat/) is a minimal, distraction-free, account-less, log-less, disappearing chat service that is easily deployable as your own service. The client comes bundled with LaTeX rendering provided by [https://github.com/Khan/KaTeX](https://github.com/Khan/KaTeX).

A list of software developed for the hack.chat framework can be found at: [https://github.com/hack-chat/3rd-party-software-list](https://github.com/hack-chat/3rd-party-software-list). This includes bots, clients, docker containers & more.

This is a backwards compatible continuation of the work by Andrew Belt [https://github.com/AndrewBelt/hack.chat](https://github.com/AndrewBelt/hack.chat). The server code has been updated to ES6 along with several new features- including new commands and hot-reload of the commands/protocol.

## Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

### Prerequisites

The following versions are __required__:

```
    node >= 8.10.0
    npm >= 5.7.1
```

An installation guide for your operating system can be found at: [https://nodejs.org/en/download/package-manager/](https://nodejs.org/en/download/package-manager/)

### Installing

First you will first need to clone this git, if you are unfamiliar with this process read [https://help.github.com/articles/cloning-a-repository/](https://help.github.com/articles/cloning-a-repository/), or to clone with git:

```
git clone https://github.com/hack-chat/main.git
```

Once cloned, the server will need to be setup. Using your terminal run:

```
cd main/server/
npm install
```

Or on a Windows machine with Yarn installed:

```
cd main/server/
yarn install
```

This will install the required packages to run hack.chat. Next the server will need to be configured, again in your terminal run:

```
node main.js
```

The configuration script will execute the initial server setup by requesting input. Follow the steps until it finishes:

```
Note: npm/yarn run config will re-run this utility.

You will now be asked for the following:
-     Admin Name, the initial admin username
-     Admin Pass, the initial admin password
-           Port, the port for the websocket
-           Salt, the salt for username trip
​
prompt: adminName:  admin
prompt: adminPass:  ****

prompt: websocketPort:  (6060)
prompt: tripSalt:  ************

Config generated! You may now start the server normally.
```

___Note:___ if you change the `websocketPort` option during the config setup then these changes will need to be reflected on line 64 of the [client.js](https://github.com/hack-chat/main/blob/master/client/client.js#L64).

After the config script runs, the process will exit & the server will need to be relaunched. For a production environment we recommend using [PM2](https://github.com/Unitech/pm2) to start the server:

```
cd main/server/
pm2 start main.js --name HackChat
```

[Launch the client](./client/README.md) `main/client/index.html`, you may now begin development or deploy to production environment.

## Deployment

After the initial installation and configuration, push everything except the node_modules folder to the live server and re-run:

```
npm install
```

You can now run start the server software with a process manager like [PM2](https://github.com/Unitech/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).

## Authors

* **Marzavec** - *Initial work* - [https://github.com/marzavec](https://github.com/marzavec)
* **MinusGix** - *Base updates* - [https://github.com/MinusGix](https://github.com/MinusGix)

See also the list of [contributors](https://github.com/hack-chat/main/graphs/contributors) who participated in this project.

## License

This project is licensed under the WTFPL License - see the [http://www.wtfpl.net/txt/copying/](http://www.wtfpl.net/txt/copying/) file for details

## Acknowledgments

* Andrew Belt, [https://github.com/AndrewBelt/hack.chat](https://github.com/AndrewBelt/hack.chat), for original base work
* wwandrew [https://github.com/wwandrew/](https://github.com/wwandrew/), for finding server flaws (including attack vectors) and submitting ~~___incredibly detailed___~~ bug reports