carkod / binbot

An API, React app dashboard, Telegram bot to monitor and trigger bots for cryptocurrency trading
5 stars 14 forks source link

Test Production

Requirements

Running back-end api

  1. Run pipenv shell to activate the virtual environment
  2. Comment out api service and docker-compose up -d
  3. Run vscode debugger to start the FastAPI application

New packages or installing from scratch:

Running front-end web app

  1. Run npm run install:clean
  2. Run npm start
  3. Attach vscode debugger if needed

Deployment

  1. Merge changes to master
  2. Test on local:
  1. Wait for check to pass. Github action will publish to Docker Hub

If docker-compose doesn't exist: 3. Copy scp docker-compose.yml <USERNAME>@<SERVER_IP>:/var/www/binbot.carloswu.com

  1. Modify details to match production needs

or docker build --tag binbot . && docker tag binbot carloswufei/binbot:latest && docker push carloswufei/binbot

In production:

  1. docker-compose pull && docker-compose up -d
  2. If .env.prod is modified, scp to remote server and replace .env in production with new .env.prod

Test production

  1. Run docker build --tag binbot .
  2. Run docker-compose up

If issues are encountered downloading prod DB to local

  1. Dump database: docker exec binbot_db sh -c 'mongodump --authenticationDatabase admin -u <user> -p <password> --db binbot --archive' > db.dump
  2. On local, restore docker exec -i binbot_db sh -c 'mongorestore --archive -u <MONGO_AUTH_USERNAME> -p <MONGO_AUTH_PASSWORD> --authenticationDatabase <MONGO_AUTH_DATABASE> ' < db.dump

Detailed documentation

https://carkod.github.io/binbot/