| title | Installation Guide |
|---|
Get EdgeQuake running on your machine in 5 minutes
Before installing, ensure you have:
| Requirement | Version | Check Command | Purpose |
|---|---|---|---|
| Rust | 1.95.x | rustc --version |
Build backend with the pinned toolchain |
| Cargo | via rustup | cargo --version |
Package manager and workspace tooling |
| Docker | 24+ | docker --version |
Recommended path for required PostgreSQL |
| Node.js | 20+ | node --version |
WebUI and Playwright |
| pnpm | 10+ | pnpm --version |
Frontend package manager |
┌─────────────────────┐
│ What's your goal? │
└──────────┬──────────┘
│
┌─────────────────┼─────────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Try it │ │ Develop │ │ Deploy │
│ quickly │ │ locally │ │ to prod │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
▼ ▼ ▼
make dev make dev-bg Docker Compose
(interactive) (background) (see Deployment)
# Clone the repository
git clone https://github.com/raphaelmansuy/edgequake.git
cd edgequake
# Start everything (PostgreSQL + Backend + Frontend)
make devWhat happens:
- Ensures PostgreSQL is reachable on port 5432
- Runs database migrations
- Builds and starts the Rust backend on port 8080
- Starts the Next.js frontend on port 3000 by default and automatically shifts only if that port is already in use
Verify:
# In a new terminal
curl http://localhost:8080/health
# Expected: JSON containing "status":"healthy"
# Open WebUI (default local Make-based port)
open <http://localhost:3000>If another stack is already using 3000, run
make statusto see the exact frontend URL that was selected.
# Clone and enter
git clone https://github.com/raphaelmansuy/edgequake.git
cd edgequake
# Start backend with PostgreSQL (required since v0.4.0)
make backend-bgNote: Starting with v0.4.0,
DATABASE_URLis required for all server modes. In-memory storage was removed to ensure reliable, production-grade behavior. Use the Docker-based PostgreSQL setup above (make dev) for the fastest path.
Verify:
curl http://localhost:8080/health# Clone
git clone https://github.com/raphaelmansuy/edgequake.git
cd edgequake
# Build release binary
cd edgequake
cargo build --release
# Binary location
ls target/release/edgequake
# Run directly (PostgreSQL is required)
export DATABASE_URL="postgresql://postgres:edgequake@localhost:5432/edgequake"
./target/release/edgequakePrinciple: prefer explicit health checks and the repository-pinned toolchain over ad-hoc local variations. That keeps local behavior consistent with CI.
# Terminal 1: Start PostgreSQL
make db-start
# Terminal 2: Run backend with cargo-watch
cd edgequake
cargo watch -x run
# Terminal 3: Run frontend with hot reload
cd edgequake_webui
pnpm devEdgeQuake supports multiple LLM providers:
# Install Ollama
brew install ollama # macOS
# or: curl -fsSL https://ollama.com/install.sh | sh
# Pull models
ollama pull llama3.2
ollama pull nomic-embed-text
# Start Ollama (if not running)
ollama serve
# Start EdgeQuake (auto-detects Ollama)
make dev# Set API key
export OPENAI_API_KEY="sk-your-key"
# Start EdgeQuake (auto-selects OpenAI when key is present)
make devOnce running, you can switch providers via API:
# Check current provider
curl http://localhost:8080/api/v1/config | jq .llm_provider
# Provider is auto-selected based on OPENAI_API_KEYEdgeQuake uses PostgreSQL as its storage backend for all modes (since v0.4.0):
┌─────────────────────────────────────────────────────────────┐
│ Storage (PostgreSQL) │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────┐ │
│ │ PostgreSQL 15+ │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────────────┐ │ │
│ │ │ pgvector │ │ Apache AGE │ │ │
│ │ │ (vectors) │ │ (graph DB) │ │ │
│ │ └──────────┘ └──────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────┘ │
│ │
│ DATABASE_URL required for all server modes. │
│ Use Docker for the easiest PostgreSQL setup. │
└─────────────────────────────────────────────────────────────┘
# Using Docker (recommended)
docker run -d \
--name edgequake-postgres \
-e POSTGRES_PASSWORD=edgequake \
-e POSTGRES_DB=edgequake \
-p 5432:5432 \
ghcr.io/raphaelmansuy/edgequake-postgres:latest
# Set connection string
export DATABASE_URL="postgresql://postgres:edgequake@localhost:5432/edgequake"
# Run migrations
cd edgequake && sqlx database setupRun these commands to verify your installation:
# 1. Confirm the pinned compiler is active
cd edgequake
cargo --version
rustc --version
# 2. Check backend health
curl -s http://localhost:8080/health | jq
# ✅ Expected: JSON containing "status":"healthy" and "storage_mode":"postgresql"
# 3. Check API docs
curl -s http://localhost:8080/api-docs/openapi.json | jq .info.title
# ✅ Expected: "EdgeQuake API"
# 4. Check Ollama if using the local provider
curl -s http://localhost:11434/api/tags | jq
# 5. Let the repo verify itself
cargo fmt --all --check
cargo clippy --workspace --lib -- -D warnings
cargo test --workspace --lib --no-fail-fastFor the most reproducible local setup:
cd edgequake
rustup show active-toolchain
make statusIf PostgreSQL is unavailable, EdgeQuake now exits with a clear startup error instead of crashing later in a harder-to-debug state.
# Problem: Docker not running
docker info
# Solution: Start Docker Desktop or systemctl start docker
# Problem: Port 5432 in use
lsof -i :5432
# Solution: Stop conflicting service or use different port# Problem: Rust version too old
rustup update stable
# Problem: Missing dependencies on Linux
sudo apt-get install pkg-config libssl-dev libpq-dev
# Problem: Slow compilation
# Solution: Use faster linker
# In .cargo/config.toml:
[target.x86_64-unknown-linux-gnu]
linker = "clang"
rustflags = ["-C", "link-arg=-fuse-ld=lld"]# Problem: Ollama not responding
ollama serve # Start if not running
ollama list # Check available models
# Problem: OpenAI rate limit
# Solution: Check your API usage at platform.openai.comNow that EdgeQuake is running:
- Quick Start — Ingest your first document
- Architecture Overview — Understand the system
- API Reference — Explore endpoints
| Component | Minimum | Recommended |
|---|---|---|
| RAM | 4 GB | 16 GB |
| CPU | 2 cores | 8 cores |
| Disk | 10 GB | 50 GB |
| OS | Linux, macOS, Windows (WSL2) | Linux, macOS |