- Docker and docker-compose
- Python 3
- Pipenv. If not installed, run
pip install pipenv
- Run
pipenv shell
to activate the virtual environment - Comment out api service and
docker-compose up -d
- Run vscode debugger to start the FastAPI application
New packages or installing from scratch:
pipenv lock --clear
pipenv install
- Run
npm run install:clean
- Run
npm start
- Attach vscode debugger if needed
- Merge changes to master
- Test on local:
cd web && yarn build
This is to avoid docker javascript leap out of memory error- Build and test docker container
docker build --tag binbot . && docker run -ti -p 8000:80 binbot
- Publish to docker hub
docker build --tag binbot . && docker tag binbot carloswufei/binbot:latest && docker push carloswufei/binbot
- 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
4. Modify details to match production needs
or docker build --tag binbot . && docker tag binbot carloswufei/binbot:latest && docker push carloswufei/binbot
In production:
5. docker-compose pull && docker-compose up -d
6. If .env.prod
is modified, scp to remote server and replace .env
in production with new .env.prod
- Run
docker build --tag binbot .
- Run
docker-compose up
If issues are encountered downloading prod DB to local
- Dump database:
docker exec binbot_db sh -c 'mongodump --authenticationDatabase admin -u <user> -p <password> --db binbot --archive' > db.dump
- 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
Everytime the application runs, it will alembic upgrade head
. To rollback changes use alembic downgrade -1
.
If files have been modified in the models and no new revisions were created, the Alembic Github action check should fail. In which case, an upgrade and new revision is required.