https://github.com/alexpreynolds/hgsoda
HiGlass soda plot gallery tool
https://github.com/alexpreynolds/hgsoda
Last synced: about 2 hours ago
JSON representation
HiGlass soda plot gallery tool
- Host: GitHub
- URL: https://github.com/alexpreynolds/hgsoda
- Owner: alexpreynolds
- Created: 2018-10-11T10:23:09.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-10-13T11:34:44.000Z (over 6 years ago)
- Last Synced: 2025-05-16T05:08:15.303Z (about 1 month ago)
- Language: JavaScript
- Size: 225 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# hgsoda
HiGlass soda plot gallery tool## Setup
Installation and testing is being done on an Ubuntu 16 host.
Some libraries are required for Puppeteer functionality:
```
$ sudo apt-get install libxss1 libnss3-dev -y
```The `hgsoda` tool is made up of a React frontend that mediates user interaction, and an Express backend that handles turning BED files into browser snapshots.
Both the frontend and backend need to run on separate ports. Here's an example of how to start the development servers for each:
### Backend
```
$ cd git/hgsoda
$ mkdir -p assets
$ npm install
$ export AWS_HOST="http://hgsoda.altius.org"
$ PORT=3000 HOST=${AWS_HOST} npm run dev
```### Frontend
```
$ cd git/hgsoda/client
$ npm install
$ export AWS_HOST="http://hgsoda.altius.org"
$ sudo PORT=80 HOST=${AWS_HOST} npm run start
```### PM2 deployment (production)
#### Installation
```
$ sudo npm install pm2 -g
$ sudo pm2 startup systemd
$ sudo npm i -g serve
$ sudo ln -s /home/ubuntu/node-v10.12.0-linux-x64/bin/serve /usr/bin/serve
```#### Backend
We disable `watch` as the contents of this folder can change during snapshot processing. If `watch` is enabled, the node process will restart and potentially interrupt the creation of a gallery, which is bad.
```
$ cd git/hgsoda
$ cat > hgsoda-server.json
{
apps : [
{
name: "hgsoda-server",
script: "npm run build",
interpreter: "node",
watch: false,
cwd: "/home/ubuntu/git/hgsoda",
env: {
"DEBUG": "hgsoda:*",
"PORT": 3000,
"NODE_ENV": "production",
"HOST": "hgsoda.altius.org"
}
}
]
}
$ sudo pm2 start hgsoda-server.json
```#### Frontend
For the frontend, we serve a static build of the React application. We should be able to safely enable `watch` here, as we do not expect the contents of this folder to change. However, if we do change this folder's contents, this can affect the backend process and so we disable this parameter.
```
$ cd git/hgsoda/client
$ npm run build
$ cat > hgsoda-client.json
{
apps : [
{
name: "hgsoda-client",
script: "npx",
interpreter: "none",
watch: false,
cwd: "/home/ubuntu/git/hgsoda/client",
args: "serve -l 80 -s build"
}
]
}
$ sudo pm2 start hgsoda-client.json
```#### Other
Once `pm2` is set up, use:
```
$ sudo pm2 save
```to persist the process configuration between reboots of the host server.