mirror of https://github.com/bra1n/townsquare.git
54 lines
1.7 KiB
Markdown
54 lines
1.7 KiB
Markdown
|
## Live session server
|
||
|
This is the home of the NodeJS live session backend.
|
||
|
It allows a Storyteller and their player to communicate through
|
||
|
a Websocket interface with each other.
|
||
|
|
||
|
In order to run it, you need a recent NodeJS version (v12+) and a set
|
||
|
of SSL Certificate and Key files in order to run the socket through
|
||
|
a secured connection.
|
||
|
|
||
|
### Local setup
|
||
|
|
||
|
To run the backend locally, use the following commands from the project root:
|
||
|
|
||
|
```shell
|
||
|
npm install
|
||
|
cd server/
|
||
|
NODE_ENV=development node index.js
|
||
|
```
|
||
|
|
||
|
This will open the backend server on `localhost:8081` and you
|
||
|
need to adjust your `/src/store/socket.js` file to connect to
|
||
|
the localhost backend.
|
||
|
|
||
|
### Live setup
|
||
|
|
||
|
Generate a `cert.pem` and `key.pem` file for the domain that your
|
||
|
live session backend will be available under, for example with [Let's Encrypt](https://letsencrypt.org/).
|
||
|
Copy or symlink these 2 files into your `server/` folder and then run
|
||
|
the following commands from the project root:
|
||
|
|
||
|
```shell
|
||
|
npm install
|
||
|
cd server/
|
||
|
node index.js
|
||
|
```
|
||
|
|
||
|
This will make the backend server available at your domain on port 8080.
|
||
|
If you want to have it automatically recover on crash or server restart,
|
||
|
you could use [pm2](https://pm2.keymetrics.io/) with the provided `ecosystem.config.js`
|
||
|
|
||
|
### Allowing access from different domains
|
||
|
|
||
|
Currently the backend server only accepts connections coming from
|
||
|
pages hosted on github.io or localhost. If you want to use your own
|
||
|
domain for the page, make sure to adjust the domain whitelist pattern
|
||
|
around line 15 in the `index.js`:
|
||
|
|
||
|
```ecmascript 6
|
||
|
verifyClient: info =>
|
||
|
!!info.origin.match(
|
||
|
/^https?:\/\/([^.]+\.github\.io|localhost|live\.clocktower\.online|eddbra1nprivatetownsquare\.xyz)/i
|
||
|
)
|
||
|
```
|