AKHS — is a collection of services for automation tasks, written on Kotlin with Spring Framework
All services linked with each other with the help of Apache Kafka
In the following, env variables will be described in format: VARIBALE_NAME:default_value — value_description
LOKI— the URL for Loki service
CONFIG_SERVER_USER:config— the username that will be set as value to get access to config serverCONFIG_SERVER_PASSWORD:config-password— the password that will be set as value to get access to config server
ADMIN_SERVER_HOST:localhost— the host on which located admin serverADMIN_SERVER_PORT:9999— the port through which connect to admin server
CONFIG_SERVER_HOST:localhost— the host on which located config serverCONFIG_SERVER_PORT:8888— the port through which connect to config serverCONFIG_SERVER_USER:config— the username that needed to get access to config serverCONFIG_SERVER_PASSWORD:config-password— the password that needed to get access to config server
POSTGRES_USER:postgres— the username that needed to connect to database serverPOSTGRES_PASSWORD:secret— the password that needed to connect to database serverPOSTGRES_DATABASE:akhs— the database name to which needs to connectPOSTGRES_HOST:localhost— the host on which located database serverPOSTGRES_PORT:5432— the port through which connect to database server
KAFKA_BOOTSTRAP_SERVERS:localhost:9092— the bootstrap servers for connecting to Apache Kafka. Bootstrap servers will be storage in format:host1:9092,host2:9093,host3:29092
REDIS_HOST:localhost— the host on which located Redis serverREDIS_PORT:6379— the port through which connect to Redis server
In this project Prometheus, Grafana, Loki are used. You should run it services.
To build JAR files, you should run:
gradle clean buildTo build docker images of services, you should run:
docker build --build-arg JAR_FILE=<service jar file> -t akhs/<service-name>:<service-version> .for example:
docker build --build-arg JAR_FILE=akhs-configurations/build/libs/akhs-configurations-0.0.1.jar -t akhs/akhs-configurations:0.0.1 .For run AKHS, you should deploy the following services:
Important
Your SHOULD deploy required services
For run AKHS, you may run JAR file or run:
gradle <service>:runIf you use docker-compose, you should run:
docker-compose buildNote
In this solution required services deployed on Docker-compose
Before run AKHS, you should run:
docker-compose upFor run AKHS, you may run JAR file or run:
gradle <service>:runImportant
Before run AKHS in docker-compose you should build JAR files
For run AKHS, you should run:
docker-compose upSo far empty...
|- separate exchangeable profiles,- separate required profiles
The expression cloud | local, dev | prod equals the next expression: (cloud or local) and (dev or prod)
| Microservice name | Profiles |
|---|---|
| akhs-configurations | git | native |
| akhs-discord | cloud | local, dev | prod |
| akhs-telegram | cloud | local, dev | prod |
| akhs-twitch | cloud | local, dev | prod |
| akhs-youtube | cloud | local, dev | prod |