Skip to content

Working

Sowmiya Nagarajan edited this page Mar 21, 2020 · 3 revisions

So how does Stackbox work?

Docker infra

The whole project is based out of a docker-compose based core.

  • master.yaml has a master list and docker services config for all stackbox supported services
  • stack_box.sh is the starting point. It makes use of stack.py to generate a docker-compose.yaml from the master.yaml based on the params.
  • stack_box.sh then uses the generated docker-compose.yaml to up the containers with any configurations if necessary
  • All the containers thus end up communicating with each other on the same docker-network. The frontend, backend and services are bought together by this infra.

Services

Most services are pre-configured to make sure the frontend and backend can seamlessly connect with each other.

1. MySQL

  • Exposed on 3306
  • Preloaded with database and tables from init.sql

2. Elasticsearch

  • Exposed on 9200
  • Single node cluster
  • Populated in the stack index with some data. Flask example - elasticsearch.py
  • Can be bought up along with kibana (another stackbox supported service) to aid in querying.

3. Kafka

  • Exposed via flask-sockets. Flask example - produce and consume from stackbox kafka topic.
  • Standalone python scripts consumer.py and producer.py can also be used to test the kafka setup.
  • (index.html)[https://github.com/Stack-Box/StackBox/blob/master/kafka/index.html] has barebones ajax and html to connect to flask-kafka to produce and consume messages.

Backend Clients

1. Flask

Dockerized (flask)[https://github.com/Stack-Box/StackBox/tree/master/flask] with clients for all supported services.

Frontend Clients

1. Vue

Dockerized (vue)[https://github.com/Stack-Box/StackBox/tree/master/vue] with pages for all supported services.

Clone this wiki locally