aboutsummaryrefslogtreecommitdiffstats
path: root/documentation/DEPLOY.md
blob: 31bb5d7952d09cc2f696908e82c553dee98a64b8 (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
# Development Enviroment

1. [Clone](https://help.github.com/articles/cloning-a-repository/) the repository.
    * Terminal Command: `git clone https://github.com/hack-chat/main.git hackchat`
1. Enter the directory in your terminal.
    * Terminal Command: `cd hackchat`
1. Install using npm. 
    * Terminal Command: `npm install`
1. Start the application. 
    * Terminal Command: `npm start`

# Live Deployment Installation

1. (Follow steps 1 - 3 above)
1. Use PM2 to start the backend server.
    * Terminal Command: `pm2 start ./server/main.js --node-args="-r esm" --name hackchat-dev-server`
    * See tips below to make the server start on boot.
1. Migrate the contents of `./hackchat/client` into any suitable directory of your webserver. HackChat comes bundled with `http-server` for development purposes only, it is highly recommended that you use a better web server such as Nginx or Apache.
1. (OPTIONAL) Cleanup; you may delete `hackchat/clientSource` and `hackchat/documentation`

# Tips

* 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).
* **Do not use root.** Installing while using the root account or installing with root privileges will result in an error similar to the following:
`npm WARN lifecycle hack.chat-v2@2.1.92~postinstall: cannot run in wd hack.chat-v2@2.1.91 cd ./clientSource && npm install && cd .. & cd ./server && npm install && npm run config (wd='/dir')`
* PM2 may be configured to start the backend server on boot, read [https://pm2.keymetrics.io/docs/usage/startup/](https://pm2.keymetrics.io/docs/usage/startup/)
* On some computers, due to a bug in `http-server`, **a blank page** may be shown while attempting to open the default index page. If this happens, change the url to include `index.html`, or browse to a channel; `http://127.0.0.1:3000/?programming`
* **Do not install using** `sudo apt install nodejs`, instead use:
   ```bash
   cd ~
   curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh
   sudo bash nodesource_setup.sh
   sudo apt install nodejs
   ```
* Quick setup script, tested on Ubuntu 18. 
  * `cd ~`
  * `nano ./hc_install.sh`
  * Paste:
    ```bash
    #!/bin/bash
    cd ~
    sudo apt update
    sudo apt install build-essential git
    curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh
    sudo bash nodesource_setup.sh
    sudo apt install nodejs
    nodejs -v
    npm -v
    git --version
    git clone https://github.com/hack-chat/main.git hackchat
    cd hackchat
    npm install
    ```
  * `Ctrl + x`
  * `Y`
  * `chmod u+x ./hc_install.sh`
  * `./hc_install.sh`