Docker Quickstart
Docker Quickstart — Full Stack in One Command
Section titled “Docker Quickstart — Full Stack in One Command”Zero prerequisites beyond Docker.
No Rust, no Node.js, nocargo build, nonpm install.
Cold start: ~30 seconds on a fast connection (image layers cache after first pull).
The One-Liner (no git clone required)
Section titled “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 -dThat’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)
Section titled “Option A — Pure docker compose (download file first)”# 1. Download the compose filecurl -fsSL https://raw.githubusercontent.com/raphaelmansuy/edgequake/edgequake-main/docker-compose.quickstart.yml \ -o docker-compose.quickstart.yml
# 2. Start the full stackdocker compose -f docker-compose.quickstart.yml up -d
# 3. Check healthcurl http://localhost:8080/healthOption B — With git clone + make
Section titled “Option B — With git clone + make”git clone https://github.com/raphaelmansuy/edgequake.gitcd edgequakemake stackOption C — Pinned version (production-stable)
Section titled “Option C — Pinned version (production-stable)”# Download a specific version's compose fileEDGEQUAKE_VERSION=0.10.3curl -fsSL "https://raw.githubusercontent.com/raphaelmansuy/edgequake/edgequake-main/docker-compose.quickstart.yml" \ -o docker-compose.quickstart.yml
# Start with that versionEDGEQUAKE_VERSION=${EDGEQUAKE_VERSION} docker compose -f docker-compose.quickstart.yml up -dAccess Points
Section titled “Access Points”| Service | URL | Description |
|---|---|---|
| 🌐 Web UI | http://localhost:3000 | Upload documents, explore knowledge graph |
| 🔗 REST API | http://localhost:8080 | Programmatic access |
| 📚 Swagger UI | http://localhost:8080/swagger-ui | Interactive API explorer |
| 🏥 Health | http://localhost:8080/health | JSON health status |
LLM Providers
Section titled “LLM Providers”Default: Ollama (free, local, no API key)
Section titled “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 | shollama serve &ollama pull gemma3:latest
# Start EdgeQuakedocker compose -f docker-compose.quickstart.yml up -dOpenAI
Section titled “OpenAI”EDGEQUAKE_LLM_PROVIDER=openai \OPENAI_API_KEY=sk-... \ docker compose -f docker-compose.quickstart.yml up -dAny OpenAI-compatible endpoint (LM Studio, vLLM, Azure, etc.)
Section titled “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 -dProvider reference
Section titled “Provider reference”| Variable | Default | Description |
|---|---|---|
EDGEQUAKE_LLM_PROVIDER | ollama | ollama, openai, lmstudio, mock |
EDGEQUAKE_LLM_MODEL | provider-specific default | Main chat / extraction model |
EDGEQUAKE_EMBEDDING_PROVIDER | same as LLM | Override embedding provider |
EDGEQUAKE_EMBEDDING_MODEL | provider-specific default | Embedding model override |
OPENAI_API_KEY | (empty) | Required when provider is openai |
OPENAI_BASE_URL | (empty) | Override OpenAI base URL |
OLLAMA_HOST | http://host.docker.internal:11434 | Ollama server address |
EDGEQUAKE_VERSION | latest | Pin to a specific release tag |
EDGEQUAKE_PORT | 8080 | API port |
FRONTEND_PORT | 3000 | Web UI port |
POSTGRES_PASSWORD | edgequake_secret | PostgreSQL password |
Migration aliases
Section titled “Migration aliases”If you are migrating from a LightRAG-style environment file, EdgeQuake also accepts:
| Alias | Canonical variable |
|---|---|
MODEL_PROVIDER | EDGEQUAKE_LLM_PROVIDER |
CHAT_MODEL | EDGEQUAKE_LLM_MODEL |
EMBEDDING_PROVIDER | EDGEQUAKE_EMBEDDING_PROVIDER |
EMBEDDING_MODEL | EDGEQUAKE_EMBEDDING_MODEL |
EMBEDDING_DIMENSION | EDGEQUAKE_EMBEDDING_DIMENSION |
Canonical EDGEQUAKE_* variables always win when both are set.
Managing the Stack
Section titled “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 + datadocker compose -f docker-compose.quickstart.yml down -v
# Tail all logsdocker compose -f docker-compose.quickstart.yml logs -f
# Check container statusdocker compose -f docker-compose.quickstart.yml ps
# Pull latest images (then restart)docker compose -f docker-compose.quickstart.yml pulldocker compose -f docker-compose.quickstart.yml up -d
# Restart a single servicedocker compose -f docker-compose.quickstart.yml restart apiImages
Section titled “Images”All images are multi-arch (linux/amd64, linux/arm64) and published to GitHub Container Registry on every tagged release.
| Image | Tag | Description |
|---|---|---|
ghcr.io/raphaelmansuy/edgequake | latest / 0.10.3 | Rust API server |
ghcr.io/raphaelmansuy/edgequake-frontend | latest / 0.10.3 | Next.js Web UI |
ghcr.io/raphaelmansuy/edgequake-postgres | latest / 0.10.3 | PostgreSQL + pgvector + Apache AGE |
Pull an image manually:
docker pull ghcr.io/raphaelmansuy/edgequake:latestdocker pull ghcr.io/raphaelmansuy/edgequake-frontend:latestdocker pull ghcr.io/raphaelmansuy/edgequake-postgres:latestTroubleshooting
Section titled “Troubleshooting”API never becomes healthy
Section titled “API never becomes healthy”# Check logsdocker compose -f docker-compose.quickstart.yml logs api
# Common cause: Ollama not runningcurl http://localhost:11434/api/tags # should return model listollama serve & # start if not runningPort already in use
Section titled “Port already in use”# Change portsEDGEQUAKE_PORT=8081 FRONTEND_PORT=3001 \ docker compose -f docker-compose.quickstart.yml up -dReset all data
Section titled “Reset all data”docker compose -f docker-compose.quickstart.yml down -vdocker compose -f docker-compose.quickstart.yml up -dApple Silicon (M-series) / ARM64
Section titled “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
Section titled “Next Steps”- REST API Reference — upload documents, query, manage the graph
- Configuration Guide — tune LLM models, embedding dimensions, timeouts
- Production Deployment — TLS, secrets management, scaling