Docker Quickstart

July 10, 2026 · View on GitHub

Zero prerequisites beyond Docker.
No Rust, no Node.js, no cargo build, no npm install.
Cold start: ~30 seconds on a fast connection (image layers cache after first pull).


The One-Liner (no git clone required)

Copy and paste this into any terminal that has Docker:

curl -fsSL https://raw.githubusercontent.com/raphaelmansuy/edgequake/edgequake-main/docker-compose.quickstart.yml \
  | docker compose -f - up -d

That's it. Three versioned images (API, Web UI, PostgreSQL) are pulled from GitHub Container Registry and started.

Then open: http://localhost:3000


Option A — Pure docker compose (download file first)

# 1. Download the compose file
curl -fsSL https://raw.githubusercontent.com/raphaelmansuy/edgequake/edgequake-main/docker-compose.quickstart.yml \
  -o docker-compose.quickstart.yml

# 2. Start the full stack
docker compose -f docker-compose.quickstart.yml up -d

# 3. Check health
curl http://localhost:8080/health

Option B — With git clone + make

git clone https://github.com/raphaelmansuy/edgequake.git
cd edgequake
make stack

Option C — Pinned version (production-stable)

# Download a specific version's compose file
EDGEQUAKE_VERSION=0.16.0
curl -fsSL "https://raw.githubusercontent.com/raphaelmansuy/edgequake/edgequake-main/docker-compose.quickstart.yml" \
  -o docker-compose.quickstart.yml

# Start with that version
EDGEQUAKE_VERSION=${EDGEQUAKE_VERSION} docker compose -f docker-compose.quickstart.yml up -d

Access Points

ServiceURLDescription
🌐 Web UIhttp://localhost:3000Upload documents, explore knowledge graph
🔗 REST APIhttp://localhost:8080Programmatic access
📚 Swagger UIhttp://localhost:8080/swagger-uiInteractive API explorer
🏥 Healthhttp://localhost:8080/healthJSON health status

LLM Providers

Default: Ollama (free, local, no API key)

Requires Ollama running on your machine:

# Install and run Ollama (once)
curl -fsSL https://ollama.ai/install.sh | sh
ollama serve &
ollama pull gemma4:latest

# Start EdgeQuake
docker compose -f docker-compose.quickstart.yml up -d

OpenAI

EDGEQUAKE_LLM_PROVIDER=openai \
OPENAI_API_KEY=sk-... \
  docker compose -f docker-compose.quickstart.yml up -d

Any OpenAI-compatible endpoint (LM Studio, vLLM, Azure, etc.)

EDGEQUAKE_LLM_PROVIDER=openai \
OPENAI_API_KEY=your-key \
OPENAI_BASE_URL=http://localhost:1234/v1 \
  docker compose -f docker-compose.quickstart.yml up -d

Provider reference

VariableDefaultDescription
EDGEQUAKE_DEFAULT_LLM_PROVIDERollama (no API key) / openai (with key)Primary LLM provider (make dev sets this)
EDGEQUAKE_DEFAULT_LLM_MODELgemma4:latest / gpt-5-nano¹Primary LLM model
EDGEQUAKE_EMBEDDING_PROVIDERsame as LLMOverride embedding provider
EDGEQUAKE_EMBEDDING_MODELprovider-specific defaultEmbedding model override
OPENAI_API_KEY(empty)Required when provider is openai
OPENAI_BASE_URL(empty)Override OpenAI base URL
OLLAMA_HOSThttp://host.docker.internal:11434Ollama server address
EDGEQUAKE_VERSIONlatestPin to a specific release tag
EDGEQUAKE_PORT8080API port
FRONTEND_PORT3000Web UI port
POSTGRES_PASSWORDedgequake_secretPostgreSQL password

¹ With OPENAI_API_KEY, Makefile sets gpt-5-nano; bundled catalog default is gpt-4.1-mini.

Supported providers include ollama, openai, lmstudio, anthropic, mistral, gemini, vertexai, openrouter, mock, and others in models.toml.

Migration aliases

If you are migrating from a LightRAG-style environment file, EdgeQuake also accepts:

AliasCanonical variable
MODEL_PROVIDEREDGEQUAKE_LLM_PROVIDER
CHAT_MODELEDGEQUAKE_LLM_MODEL
EMBEDDING_PROVIDEREDGEQUAKE_EMBEDDING_PROVIDER
EMBEDDING_MODELEDGEQUAKE_EMBEDDING_MODEL
EMBEDDING_DIMENSIONEDGEQUAKE_EMBEDDING_DIMENSION

Canonical EDGEQUAKE_* variables always win when both are set.


Managing the Stack

# Stop and remove containers (data persists in the edgequake-pg-data volume)
docker compose -f docker-compose.quickstart.yml down

# Stop and remove containers + data
docker compose -f docker-compose.quickstart.yml down -v

# Tail all logs
docker compose -f docker-compose.quickstart.yml logs -f

# Check container status
docker compose -f docker-compose.quickstart.yml ps

# Pull latest images (then restart)
docker compose -f docker-compose.quickstart.yml pull
docker compose -f docker-compose.quickstart.yml up -d

# Restart a single service
docker compose -f docker-compose.quickstart.yml restart api

Images

All images are multi-arch (linux/amd64, linux/arm64) and published to GitHub Container Registry on every tagged release.

ImageTagDescription
ghcr.io/raphaelmansuy/edgequakelatest / 0.10.3Rust API server
ghcr.io/raphaelmansuy/edgequake-frontendlatest / 0.10.3Next.js Web UI
ghcr.io/raphaelmansuy/edgequake-postgreslatest / 0.10.3PostgreSQL + pgvector + Apache AGE

Pull an image manually:

docker pull ghcr.io/raphaelmansuy/edgequake:latest
docker pull ghcr.io/raphaelmansuy/edgequake-frontend:latest
docker pull ghcr.io/raphaelmansuy/edgequake-postgres:latest

Troubleshooting

API never becomes healthy

# Check logs
docker compose -f docker-compose.quickstart.yml logs api

# Common cause: Ollama not running
curl http://localhost:11434/api/tags   # should return model list
ollama serve &                          # start if not running

Port already in use

# Change ports
EDGEQUAKE_PORT=8081 FRONTEND_PORT=3001 \
  docker compose -f docker-compose.quickstart.yml up -d

Reset all data

docker compose -f docker-compose.quickstart.yml down -v
docker compose -f docker-compose.quickstart.yml up -d

Apple Silicon (M-series) / ARM64

Images include native linux/arm64 layers — no QEMU emulation needed. Docker Desktop on macOS auto-selects the right architecture.


Next Steps