We use docker to start development infrastructure, it is required to have running before you can begin developing the server side portion of the application. This is a nodejs ingestion server that interfaces with a separate database, this server doesn't handle sensor onboarding, only ingestion of data at the moment. In the future, device onboarding and management will be moved either to this repository or a separate repository.
- Install dependencies with
yarn install - run
docker volume create timeseries-db-volume - run
docker-compose up -dto make sure services have started - run the script at
./scripts/setup_db.shto setup the database - run
yarn buildto make sure the current application builds appropriately - run
yarn watchfor development, this starts and watches the server
- TimescaleDb (pg13)
- Kafka
- Zookeeper
- Kafka-ui
- (Docker) https://docs.docker.com/get-docker/
- kubectl
brew install kubectl - minikube
brew install minikube
docker volume create timeseries-db-volumedocker build -t juniper-ingestion-stack .docker run -d --name juniper-ingestion-stack -p 3000:3000 juniper-ingestion-stackminikube startkubectl create -f kubernetes.ymlkubectl get deploy,pokubectl expose deployment juniper-ingestion-stack --type="LoadBalancer"- In another terminal run
minikube tunnel kubectl get svc, examine the external ip (should be 127.0.0.x with a port)
docker tag juniper-ingestion-stack dashcraft/juniper-ingestion-stackdocker push dashcraft/juniper-ingestion-stack