Skip to content

Docker Compose

The repository provides two Compose configurations. Both are intended for local development or evaluation; use Kubernetes for production.

Standalone Compose

compose.yml builds the current checkout and runs all pipeline stages in one container with a named data volume.

Install JDK 25 or newer because the Dockerfile copies the packaged JAR from target/.

./mvnw -DskipTests package
CONTEXTCRATE_ADMIN_PASSWORD=change-me docker compose up --build

Open http://localhost:8080 and sign in as admin@contextcrate.local with the password you supplied. Stop the application with docker compose down; omit --volumes to preserve contextcrate-data.

The standalone volume includes H2, filesystem artifacts, Lucene, and the local model cache. It is appropriate for development and moderate single-instance workloads.

Distributed Compose

compose.distributed.yml starts ContextCrate roles with PostgreSQL, RabbitMQ, MinIO, and OpenSearch in one local Compose project. It is an evaluation topology, not a production installation: its service credentials and disabled OpenSearch security are deliberately convenient for local use.

Build the JAR once before starting the stack if it is not already present in target/.

./mvnw -DskipTests package
CONTEXTCRATE_ADMIN_PASSWORD=change-me docker compose -f compose.distributed.yml up

The control plane is available at http://localhost:8080. RabbitMQ management is exposed on http://localhost:15672, and MinIO Console on http://localhost:9001.

Stop the stack with:

docker compose -f compose.distributed.yml down

For a clean local reset, explicitly remove the named Compose volumes after confirming that no data needs to be retained. Production deployments should use managed or independently operated PostgreSQL, RabbitMQ, S3-compatible object storage, and OpenSearch instead.