Installation Guide
Installation Guide
Section titled “Installation Guide”Get EdgeQuake running on your machine in 5 minutes
Prerequisites Checklist
Section titled “Prerequisites Checklist”Before installing, ensure you have:
| Requirement | Version | Check Command | Purpose |
|---|---|---|---|
| Rust | 1.78+ | rustc --version | Build backend |
| Cargo | Latest | cargo --version | Package manager |
| Docker | 24+ | docker --version | PostgreSQL (optional) |
| Node.js | 20+ | node --version | WebUI (optional) |
| pnpm | 8+ | pnpm --version | Package manager |
Quick Install Decision Tree
Section titled “Quick Install Decision Tree” ┌─────────────────────┐ │ What's your goal? │ └──────────┬──────────┘ │ ┌─────────────────┼─────────────────┐ │ │ │ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ Try it │ │ Develop │ │ Deploy │ │ quickly │ │ locally │ │ to prod │ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │ │ ▼ ▼ ▼ make dev make dev-bg Docker Compose (interactive) (background) (see Deployment)Installation Options
Section titled “Installation Options”Option 1: Full Stack with Make (Recommended)
Section titled “Option 1: Full Stack with Make (Recommended)”# Clone the repositorygit clone https://github.com/raphaelmansuy/edgequake.gitcd edgequake
# Start everything (PostgreSQL + Backend + Frontend)make devWhat happens:
- Starts PostgreSQL in Docker (port 5432)
- Runs database migrations
- Builds and starts Rust backend (port 8080)
- Starts Next.js frontend (port 3000)
Verify:
# In a new terminalcurl http://localhost:8080/health# Expected: {"status":"ok","version":"..."}
# Open WebUIopen http://localhost:3000Option 2: Backend Only (For API Development)
Section titled “Option 2: Backend Only (For API Development)”# Clone and entergit clone https://github.com/raphaelmansuy/edgequake.gitcd edgequake
# Start backend with PostgreSQLmake backend-bg
# Or: Start backend with in-memory storage (no persistence)make backend-memoryVerify:
curl http://localhost:8080/healthOption 3: Build from Source
Section titled “Option 3: Build from Source”# Clonegit clone https://github.com/raphaelmansuy/edgequake.gitcd edgequake
# Build release binarycd edgequakecargo build --release
# Binary locationls target/release/edgequake
# Run directly./target/release/edgequakeOption 4: Development Mode (Watch + Hot Reload)
Section titled “Option 4: Development Mode (Watch + Hot Reload)”# Terminal 1: Start PostgreSQLmake db-start
# Terminal 2: Run backend with cargo-watchcd edgequakecargo watch -x run
# Terminal 3: Run frontend with hot reloadcd edgequake_webuipnpm devLLM Provider Configuration
Section titled “LLM Provider Configuration”EdgeQuake supports multiple LLM providers:
Ollama (Free, Local) — Default
Section titled “Ollama (Free, Local) — Default”# Install Ollamabrew install ollama # macOS# or: curl -fsSL https://ollama.com/install.sh | sh
# Pull modelsollama pull llama3.2ollama pull nomic-embed-text
# Start Ollama (if not running)ollama serve
# Start EdgeQuake (auto-detects Ollama)make devOpenAI (Paid, Cloud)
Section titled “OpenAI (Paid, Cloud)”# Set API keyexport OPENAI_API_KEY="sk-your-key"
# Start EdgeQuake (auto-selects OpenAI when key is present)make devProvider Switching at Runtime
Section titled “Provider Switching at Runtime”Once running, you can switch providers via API:
# Check current providercurl http://localhost:8080/api/v1/config | jq .llm_provider
# Provider is auto-selected based on OPENAI_API_KEYStorage Configuration
Section titled “Storage Configuration”┌─────────────────────────────────────────────────────────────┐│ Storage Options │├─────────────────────────────────────────────────────────────┤│ ││ ┌──────────────────┐ ┌──────────────────┐ ││ │ PostgreSQL │ │ In-Memory │ ││ │ + pgvector │ │ │ ││ │ + Apache AGE │ │ (No Docker) │ ││ │ │ │ (No persist) │ ││ │ [Production] │ │ [Development] │ ││ └──────────────────┘ └──────────────────┘ ││ ││ DATABASE_URL set? ────▶ Yes: Use PostgreSQL ││ ────▶ No: Use In-Memory │└─────────────────────────────────────────────────────────────┘PostgreSQL Setup
Section titled “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 stringexport DATABASE_URL="postgresql://postgres:edgequake@localhost:5432/edgequake"
# Run migrationscd edgequake && sqlx database setupVerification Checklist
Section titled “Verification Checklist”Run these commands to verify your installation:
# 1. Check backend healthcurl -s http://localhost:8080/health | jq# ✅ Expected: {"status":"ok","version":"0.1.0",...}
# 2. Check API docscurl -s http://localhost:8080/api-docs/openapi.json | jq .info.title# ✅ Expected: "EdgeQuake API"
# 3. Check LLM providercurl -s http://localhost:8080/api/v1/config | jq .llm_provider# ✅ Expected: "ollama" or "openai"
# 4. Test document ingestioncurl -X POST http://localhost:8080/api/v1/documents \ -H "Content-Type: application/json" \ -d '{"content":"Marie Curie discovered radium in 1898.","title":"Test"}'# ✅ Expected: {"document_id":"...","entities_extracted":...}
# 5. Test querycurl -X POST http://localhost:8080/api/v1/query \ -H "Content-Type: application/json" \ -d '{"query":"Who discovered radium?"}'# ✅ Expected: {"response":"Marie Curie...","sources":[...]}Troubleshooting
Section titled “Troubleshooting”Docker Issues
Section titled “Docker Issues”# Problem: Docker not runningdocker info# Solution: Start Docker Desktop or systemctl start docker
# Problem: Port 5432 in uselsof -i :5432# Solution: Stop conflicting service or use different portRust Build Issues
Section titled “Rust Build Issues”# Problem: Rust version too oldrustup update stable
# Problem: Missing dependencies on Linuxsudo 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"]LLM Issues
Section titled “LLM Issues”# Problem: Ollama not respondingollama serve # Start if not runningollama list # Check available models
# Problem: OpenAI rate limit# Solution: Check your API usage at platform.openai.comNext Steps
Section titled “Next Steps”Now that EdgeQuake is running:
- Quick Start — Ingest your first document
- Architecture Overview — Understand the system
- API Reference — Explore endpoints
System Requirements
Section titled “System Requirements”| 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 |