Monitor in docker (#109)
* Monitor in docker * Update readme. * Update crontab.example * Removed examples from readme * Update readme.
This commit is contained in:
parent
26ff22ac7e
commit
1da7340fb9
17
monitor/Dockerfile
Normal file
17
monitor/Dockerfile
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
FROM node:8
|
||||||
|
|
||||||
|
WORKDIR /mono
|
||||||
|
COPY package.json .
|
||||||
|
COPY contracts/package.json ./contracts/
|
||||||
|
COPY monitor/package.json ./monitor/
|
||||||
|
COPY yarn.lock .
|
||||||
|
RUN yarn install --frozen-lockfile --production
|
||||||
|
|
||||||
|
COPY ./contracts ./contracts
|
||||||
|
RUN yarn run compile:contracts
|
||||||
|
RUN mv ./contracts/build ./ && rm -rf ./contracts/* ./contracts/.[!.]* && mv ./build ./contracts/
|
||||||
|
|
||||||
|
COPY ./monitor ./monitor
|
||||||
|
WORKDIR /mono/monitor
|
||||||
|
CMD echo "To start the monitor run:" \
|
||||||
|
"yarn start"
|
@ -110,43 +110,38 @@ cd monitor
|
|||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Example:
|
|
||||||
```bash
|
|
||||||
HOME_RPC_URL=https://sokol.poa.network
|
|
||||||
FOREIGN_RPC_URL=https://kovan.infura.io/mew
|
|
||||||
HOME_BRIDGE_ADDRESS=0xABb4C1399DcC28FBa3Beb76CAE2b50Be3e087353
|
|
||||||
FOREIGN_BRIDGE_ADDRESS=0xE405F6872cE38a7a4Ff63DcF946236D458c2ca3a
|
|
||||||
GAS_PRICE_SPEED_TYPE=standard
|
|
||||||
GAS_LIMIT=300000
|
|
||||||
GAS_PRICE_FALLBACK=21
|
|
||||||
LEFT_TX_THRESHOLD=100
|
|
||||||
```
|
|
||||||
|
|
||||||
## Check balances of contracts and validators
|
|
||||||
```
|
|
||||||
node checkWorker.js
|
|
||||||
```
|
|
||||||
|
|
||||||
## Check unprocessed events
|
|
||||||
```
|
|
||||||
node checkWorker2.js
|
|
||||||
```
|
|
||||||
|
|
||||||
## Run web interface
|
## Run web interface
|
||||||
|
|
||||||
|
Using Yarn:
|
||||||
```
|
```
|
||||||
yarn start
|
yarn start
|
||||||
```
|
```
|
||||||
|
|
||||||
To enabled debug logging, set `DEBUG=1` env variable.
|
You can run web interface via [pm2](https://www.npmjs.com/package/pm2) or similar supervisor program.
|
||||||
|
|
||||||
You can create cron job to run workers (see `crontab.example` for reference):
|
Using Docker:
|
||||||
```bash
|
```
|
||||||
#crontab -e
|
docker-compose up -d
|
||||||
*/4 * * * * cd $HOME/bridge-monitor; node checkWorker.js >>cronWorker.out 2>>cronWorker.err
|
|
||||||
*/5 * * * * cd $HOME/bridge-monitor; node checkWorker2.js >>cronWorker2.out 2>>cronWorker2.err
|
|
||||||
```
|
```
|
||||||
|
|
||||||
You can run web interface via [pm2](https://www.npmjs.com/package/pm2) or similar supervisor program.
|
- The application will run on `http://localhost:PORT`, where `PORT` is specified in your `.env` file.
|
||||||
|
- To enabled debug logging, set `DEBUG=1` variable in `.env`.
|
||||||
|
|
||||||
|
## Check balances of contracts and validators, get unprocessed events
|
||||||
|
|
||||||
|
Using Yarn:
|
||||||
|
```
|
||||||
|
yarn check-all
|
||||||
|
```
|
||||||
|
|
||||||
|
Using Docker:
|
||||||
|
```
|
||||||
|
docker-compose exec monitor yarn check-all
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cron
|
||||||
|
|
||||||
|
You can create cron job to run workers (see `crontab.example` for reference):
|
||||||
|
|
||||||
## Linting
|
## Linting
|
||||||
|
|
||||||
@ -156,7 +151,6 @@ Running linter:
|
|||||||
yarn lint
|
yarn lint
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
See the [CONTRIBUTING](../CONTRIBUTING.md) document for contribution, testing and pull request protocol.
|
See the [CONTRIBUTING](../CONTRIBUTING.md) document for contribution, testing and pull request protocol.
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
*/4 * * * * cd $HOME/bridge-monitor; node checkWorker.js >>cronWorker.out 2>>cronWorker.err
|
# Yarn:
|
||||||
*/5 * * * * cd $HOME/bridge-monitor; node checkWorker2.js >>cronWorker2.out 2>>cronWorker2.err
|
*/4 * * * * cd $HOME/bridge-monitor; yarn check-all >>cronWorker.out 2>>cronWorker.err
|
||||||
|
|
||||||
|
# Docker:
|
||||||
|
*/4 * * * * cd $HOME/bridge-monitor; docker-compose exec monitor yarn check-all >>cronWorker.out 2>>cronWorker.err
|
||||||
|
13
monitor/docker-compose.yml
Normal file
13
monitor/docker-compose.yml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
version: '2.4'
|
||||||
|
services:
|
||||||
|
monitor:
|
||||||
|
build:
|
||||||
|
context: ..
|
||||||
|
dockerfile: monitor/Dockerfile
|
||||||
|
ports:
|
||||||
|
- "${PORT}:${PORT}"
|
||||||
|
env_file: ./.env
|
||||||
|
environment:
|
||||||
|
- NODE_ENV=production
|
||||||
|
restart: unless-stopped
|
||||||
|
entrypoint: yarn start
|
@ -4,6 +4,7 @@
|
|||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"check-all": "node checkWorker.js && node checkWorker2.js",
|
||||||
"start": "node index.js",
|
"start": "node index.js",
|
||||||
"lint": "eslint . --ignore-path ../.eslintignore",
|
"lint": "eslint . --ignore-path ../.eslintignore",
|
||||||
"lint:fix": "eslint . --fix"
|
"lint:fix": "eslint . --fix"
|
||||||
|
Loading…
Reference in New Issue
Block a user