Skip to main content

Introduction

Quick Start

Getting Source Code

git clone git@github.com:QubitPi/Kugelblitz.git
cd Kugelblitz

Setting Environment Variables

tip
  • Feel free to change the values of KUGELBLITZ_ARANGO_USERNAME and KUGELBLITZ_ARANGO_PASSWORD. The values below are examples only.
  • Please do NOT, however, modify the values http://arango-db:8529 and $KUGELBLITZ_ARANGO_PASSWORD
export KUGELBLITZ_ARANGO_HOSTS=http://arango-db:8529 && \
export KUGELBLITZ_ARANGO_USERNAME=root && \
export KUGELBLITZ_ARANGO_PASSWORD=root && \
export ARANGO_ROOT_PASSWORD=$KUGELBLITZ_ARANGO_PASSWORD

Spinning Up Services

There is a reference docker-compose.yaml where we could use for production. Simply execute

docker compose up

When we see the output like the following

arango-db-1  | 2025-05-11T15:26:29Z [1] INFO [cf3f4] {general} ArangoDB (version 3.11.13 [linux]) is ready for business. Have fun!
kugelblitz-1 |
kugelblitz-1 | . ____ _ __ _ _
kugelblitz-1 | /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
kugelblitz-1 | ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
kugelblitz-1 | \\/ ___)| |_)| | | | | || (_| | ) ) ) )
kugelblitz-1 | ' |____| .__|_| |_|_| |_\__, | / / / /
kugelblitz-1 | =========|_|==============|___/=/_/_/_/
kugelblitz-1 |
kugelblitz-1 | :: Spring Boot :: (v3.4.4)
kugelblitz-1 |
...
kugelblitz-1 | 2025-05-11T15:27:29.539Z INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms

it means we are ready to play with Kugelblitz. Let's create a book entity first

curl -X 'POST' \
'http://localhost:8080/arango/createDocument/library/books' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"title": "Pride and Prejudice",
"author": "Jane Austen"
}'

Next we will verify the data has been saved into database. The quick start uses ArangoDB as the persistence database. We can first hit the Arando web console at http://localhost:8529/ which should take us to a page like the following:

ArangoDB web console login.

Use root and root as username and password, respectively. Then navigate to the data page by Login -> selecting library in database dropdown menu -> click Select DB: library -> click books collection -> click Content in the top navigation bar. As we can see the data already exists as an Arango document in the database:

Example Data in ArangoDB

tip

One could find more endpoints at http://localhost:8080/swagger-ui/index.html

Troubleshooting

Healthcheck is Failing

Inspect healthcheck logs with docker inspect --format "{{json .State.Health }}" <container name> | jq

ArangoDB Healthcheck is Failing with "ArangoError: not connected"

This is mostly due to the wrong password during the "connection" via arangosh used in healthcheck. Wrong password could be