Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/microservices-patterns/ftgo-application/llms.txt

Use this file to discover all available pages before exploring further.

Before you can build or run the FTGO application, you need a small set of tools installed on your machine. This page covers the required software, the recommended hardware configuration, and how to set the DOCKER_HOST_IP environment variable that some network configurations require.

Required software

ToolVersionPurpose
Java8 or laterCompiles and runs the Spring Boot services
DockerAny current releaseBuilds and runs service containers
Docker ComposeAny current releaseOrchestrates the multi-container stack
GitAny current releaseClones the repository
The application also requires internet access so that Gradle and Docker can download dependencies and container images on first run.

Hardware

The FTGO application starts many services and infrastructure containers simultaneously. Running it on a machine with less than 16 GB of RAM can result in containers being killed or failing to start.
The application runs well on a machine with 16 GB of RAM. This covers all application services (Consumer, Order, Kitchen, Restaurant, Accounting, Order History, and API Gateway) alongside the infrastructure containers (MySQL, Apache Kafka, Zookeeper, CDC service, DynamoDB Local, and Zipkin).

Setting DOCKER_HOST_IP

Most users running Docker for Mac or Docker for Windows do not need to set this variable. Containers are accessible via localhost on those platforms.
If Docker is running on a remote host or you are using Docker Toolbox, containers will not be reachable at localhost. In that case you must export DOCKER_HOST_IP so that both the Java services and the containers themselves can reach each other.
Do not set DOCKER_HOST_IP to localhost, 127.0.0.1, or the unresolvable hostname of your machine. Docker containers cannot reach those addresses from inside the network bridge.
1

Check whether DOCKER_HOST_IP is needed

If you are running Docker Desktop on macOS or Windows, containers are accessible via localhost and you can skip this setup entirely.If you are using Docker Toolbox or a remote Docker daemon, continue to the next step.
2

Run the set-env.sh helper script

The repository includes a helper script that reads the DOCKER_HOST variable set by Docker Toolbox and derives the correct IP automatically:
source ./set-env.sh
The script prints one of two messages:
  • DOCKER_HOST_IP is not set - localhost will be used — no action required.
  • DOCKER_HOST_IP is <address> — the variable is now exported for your shell session.
The script also sets COMPOSE_HTTP_TIMEOUT=240, which prevents Docker Compose from timing out during the slow initial pull of large images.
3

Verify the value is reachable

Confirm that DOCKER_HOST_IP resolves correctly from inside a container by running:
docker run -p 8889:8888 \
  -e DOCKER_DIAGNOSTICS_PORT=8889 \
  -e DOCKER_HOST_IP \
  --rm eventuateio/eventuateio-docker-networking-diagnostics:0.2.0.RELEASE
A successful response indicates that containers can reach the host at the configured address.
4

Set the variable in your IDE (optional)

If you intend to run Java services or tests from within an IDE while the infrastructure runs in Docker, you must also add DOCKER_HOST_IP to your IDE’s run or test configuration. The exact location depends on your IDE; a convenient approach is to launch the IDE from a terminal after sourcing set-env.sh.

Build docs developers (and LLMs) love