Bullish

A simple webapp to explore Bhav Copy Equity data

[![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) Backend: [![Docker Pulls - Backend](https://img.shields.io/docker/pulls/codingcoffee/bullish-backend)](https://hub.docker.com/r/codingcoffee/bullish-backend) [![Docker Image Size Backend (tag)](https://img.shields.io/docker/image-size/codingcoffee/bullish-backend?sort=date)](https://hub.docker.com/r/codingcoffee/bullish-backend/tags?name=latest) Frontend [![Docker Pulls - Frontend](https://img.shields.io/docker/pulls/codingcoffee/bullish-frontend)](https://hub.docker.com/r/codingcoffee/bullish-frontend) [![Docker Image Size Frontend (tag)](https://img.shields.io/docker/image-size/codingcoffee/bullish-frontend?sort=date)](https://hub.docker.com/r/codingcoffee/bullish-frontend/tags?name=latest) ## Usage - Local setup is supported via Docker Compose ![Development Architecture](.assets/images/bullish-dev-2021-02-12.png "Development Architecture") ```sh docker-compose up -d ``` ### Build - Build images for dev ```sh docker-compose build ``` - Build images for prod ```sh ./prod-build.sh ``` ### Logging To get the logs of all containers ```sh docker logs -f ``` To get the logs of a particular container ```sh docker logs -f container-name ``` Here `container-name` can be either of `backend`, `frontend`, `redis`, `postgresql`, `rqworker` or `rqscheduler`. ## Deploy The recommended way for deploy is on Kubernetes. You can find the related files ![Production Architecture](.assets/images/bullish-prod-2021-02-12.png "Production Architecture") in `k8s` directory. - One time deploy ```sh # Deploy ingress kubectl apply -f k8s/ingress/ingress-https.yaml # Deploy Postgres and Redis DB kubectl apply -f k8s/app/redis.yaml kubectl apply -f k8s/app/postgres.yaml # Deploy Backend kubectl apply -f k8s/app/backend.yaml kubectl apply -f k8s/app/rqworker.yaml kubectl apply -f k8s/app/rqscheduler.yaml # Deploy Frontend kubectl apply -f k8s/app/frontend.yaml ``` - Subsequent deploys can be done by rolloing out a restart since all pods have a `imagePullPolicy` set to Always ```sh # Push containers to Docker Hub and Deploy to K8s ./prod-deploy.sh ``` ## License The code in this repository has been released under the [GNU Affero General Public License v3](https://www.gnu.org/licenses/agpl-3.0.en.html) ## Attributions - [Bullish icon](./.assets/images/bullish.png) made by [Freepik](https://www.freepik.com) from [Flaticon](https://www.flaticon.com)