Skip to content

xcodeassociated/EventLocatorPlatform

Repository files navigation

Event Locator Platform

Quickstart guide for developer

Dependencies:

Project uses custom Keycloak image in order to handle user events via kafka message bus. Custom Keycloak can be found at: elp-keycloak

Build:

In order to build services docker images have to be built and tagged via docker-compose build

$ docker-compose -f ./docker-compose_elk.yml -f ./docker-compose_eureka.yml -f ./docker-compose_event-service.yml -f ./docker-compose_kafka.yml -f ./docker-compose_keycloak.yml -f ./docker-compose_metrics.yml -f ./docker-compose_mongo.yml -f ./docker-compose_postgres.yml -f ./docker-compose_redis.yml -f ./docker-compose_user-service.yml -f ./docker-compose_web.yml build --parallel

Linux only additional config:

$ sudo sysctl -w vm.max_map_count=262144

Sometimes it is required to clean up kafka volume directory:

$ rm -rf volumes/dev-kafka-*

Run:

To run project use docker-compose up command

$ docker-compose -f ./docker-compose_elk.yml -f ./docker-compose_eureka.yml -f ./docker-compose_event-service.yml -f ./docker-compose_kafka.yml -f ./docker-compose_keycloak.yml -f ./docker-compose_metrics.yml -f ./docker-compose_mongo.yml -f ./docker-compose_postgres.yml -f ./docker-compose_redis.yml -f ./docker-compose_user-service.yml -f ./docker-compose_web.yml up

Run without external tools web intgerfaces:

This setup is all that is equired (including own services) in order to run and host complete application without external service tools (e.g. MongoDB viewer or PostgreSQL PGadmin tools, ...)

$ docker-compose -f ./docker-compose_all-dev.yml up

Development containers:

Full external stack

In order to develop project the external dependencies can be launched:

$ docker-compose -f ./docker-compose_elk.yml -f ./docker-compose_kafka.yml -f ./docker-compose_keycloak.yml -f ./docker-compose_metrics.yml -f ./docker-compose_mongo.yml -f ./docker-compose_postgres.yml -f ./docker-compose_redis.yml up

note: ternal web tools are included in this mode, keep in mind that the JVM service has to launched separately as well as eureka service

Minimal external stack

This setup is used for minimal dev profile of the spring applications:

$ docker-compose -f ./docker-compose_kafka.yml -f ./docker-compose_keycloak.yml -f ./docker-compose_mongo.yml -f ./docker-compose_postgres.yml -f ./docker-compose_redis.yml up

OR

$ docker-compose -f ./docker-compose_min-dev.yml

note: external web tools are included in this mode as well

Generate self-sign certificate for ssl via certbot:

This step is required in order to enable haproxy to use ssl with http mode to have fully functional https:// protocol working

$ sudo certbot certonly --standalone

Publish website:

In order to publish the website some proxy application has to be used e.g. haproxy, nginx, etc. Haproxy config is ready to be used.

$ sudo haproxy -f ./haproxy/haproxy-lua.cfg

Cleanup:

Docker containers clean up can be done via docker-compose down command

$ docker-compose -f ./docker-compose_elk.yml -f ./docker-compose_eureka.yml -f ./docker-compose_event-service.yml -f ./docker-compose_kafka.yml -f ./docker-compose_keycloak.yml -f ./docker-compose_metrics.yml -f ./docker-compose_mongo.yml -f ./docker-compose_postgres.yml -f ./docker-compose_redis.yml -f ./docker-compose_user-service.yml -f ./docker-compose_web.yml down

Ecternal dependencies used:

  1. PostgreSQL essential
  2. MongoDB essential
  3. Kafka & Zookeeper essential
  4. Redis essential
  5. Grafana & InfluxDB
  6. ELK: Elasticsearch, Logstash, Kibana

Author:

Feel free to fork or contact me on github: xcodeasscoaited !

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published