Skip to content

Docker Installation

The fastest way to run CoordiNode — no build tools required.

Prerequisites

Get the Compose File

Clone the repository to get docker-compose.yml and the bundled examples:

bash
git clone https://github.com/structured-world/coordinode.git
cd coordinode

The pre-built image is published at ghcr.io/structured-world/coordinode. If you prefer to use it directly without cloning, create a minimal docker-compose.yml:

yaml
services:
  coordinode:
    image: ghcr.io/structured-world/coordinode:latest
    container_name: coordinode
    ports:
      - "7080:7080"
      - "7081:7081"
      - "7084:7084"
    volumes:
      - coordinode-data:/data
    environment:
      - COORDINODE_LOG_FORMAT=json
    restart: unless-stopped

volumes:
  coordinode-data:
    driver: local

Start CoordiNode

bash
docker compose up -d

CoordiNode starts in under 5 seconds. Verify it is healthy:

bash
curl http://localhost:7084/health

Expected response:

json
{"status":"ok"}

Ports

PortProtocolPurpose
7080gRPCNative API — high-throughput clients
7081HTTP/RESTJSON API via structured-proxy (REST transcoding, separate container)
7084HTTP/health, /ready, Prometheus /metrics

Data Persistence

By default, docker-compose.yml mounts a named volume coordinode-data for the data directory. Data survives container restarts.

To start fresh:

bash
docker compose down -v   # removes the volume
docker compose up -d

Environment Variables

VariableDefaultDescription
RUST_LOGinfoLog level: error, warn, info, debug, trace
COORDINODE_DATA/dataData directory inside the container

Set them in docker-compose.yml or via --env:

bash
RUST_LOG=debug docker compose up

Run Seed Data (Optional)

Try the bundled quickstart example:

bash
./examples/quickstart/seed.sh

This inserts a small knowledge graph (4 concept nodes + 4 document nodes with 384-dimensional embeddings) and verifies connectivity.

Next Step

Run a hybrid query combining graph traversal + vector similarity:

bash
curl -s -X POST http://localhost:7081/v1/query/cypher \
  -H "Content-Type: application/json" \
  -d @examples/quickstart/hybrid-query.json | python3 -m json.tool

See Quick Start for the full walkthrough.