Unified development workflow for EdgeQuake using Makefile commands. Use when starting services, running tests, or managing the full development stack (database, backend, frontend). Provides simplified alternatives to raw cargo/npm commands.
72
90%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Use this skill when you need to:
The repository includes a unified Makefile (at repo root) that wraps complex shell commands into simple targets. This replaces scattered docker-compose commands and cargo/npm invocations with a consistent interface.
edgequake/: Rust backend API (port 8080)edgequake_webui/: Next.js frontend (port 3000)edgequake/docker/: Docker configuration with docker-compose.yml (contains PostgreSQL + pgvector + Apache AGE)make devStarts PostgreSQL, Rust backend, and Next.js frontend in parallel. Displays URLs for all services.
make stopKills all running processes and stops Docker containers gracefully.
make statusShows health of backend, frontend, and database with actual health checks and endpoints.
make db-start # Start PostgreSQL container (port 5432)
make db-stop # Stop PostgreSQL gracefully
make db-logs # View PostgreSQL logs in real-time
make db-shell # Open psql shell into the database
make db-reset # DANGER: Delete all data and reinitialize databasemake backend-dev # Run backend in development mode with hot reload
make backend-build # Build backend for release
make backend-test # Run backend tests (uses mock LLM provider by default)
make backend-run # Run compiled backend binary
make backend-clippy # Lint backend code (strict)
make backend-fmt # Format backend code with rustfmtmake frontend-dev # Start frontend dev server with Turbopack (hot reload)
make frontend-build # Build frontend for production
make frontend-start # Start production frontend server
make frontend-lint # Lint frontend code (ESLint)
make frontend-test # Run frontend unit testscd edgequake_webui && pnpm exec playwright testRuns all test specs in e2e/ directory with HTML reporter.
cd edgequake_webui && pnpm exec playwright test markdown-test.spec.tscd edgequake_webui && pnpm exec playwright test \
markdown-test.spec.ts \
streaming-test.spec.ts \
live-query-test.spec.ts \
final-validation.spec.tsThese tests verify:
** showing)cd edgequake_webui && pnpm exec playwright show-reportOpens HTML report of last test run showing pass/fail, screenshots, traces.
make docker-buildmake docker-upStarts containerized EdgeQuake API and PostgreSQL with automatic health checks.
make docker-downmake docker-logsmake docker-psmake lintRuns cargo clippy (Rust) and ESLint (frontend) with strict warnings-as-errors.
make formatApplies rustfmt to Rust code and prettier to frontend code.
make testRuns both backend tests (with mock LLM) and frontend tests in parallel.
make buildProduces release binaries for both backend and frontend.
make check-depsVerifies that required tools are installed:
cargo (Rust toolchain)bun or npm (Node.js)docker (optional, required for db-start/Docker commands)If dependencies are missing, installation instructions are provided.
make installInstalls Rust crates and frontend npm packages.
make cleanRemoves target/ directory and .next/ build caches.
make clean-allAlso removes node_modules/ - forces full reinstall on next run.
make swaggerOpens browser to http://localhost:8080/swagger-ui (API documentation).
make logsShows recent backend logs and Docker container status.
# 1. Install dependencies
make install
# 2. Start full stack
make dev
# 3. Make changes to code...
# 4. Check code quality before committing
make lint
make format
make test
# 5. Run E2E tests to verify UI
cd edgequake_webui && pnpm exec playwright test
# 6. Stop when done
make stop# Start database (for integration tests)
make db-start
# Run backend tests
make backend-test
# Run frontend tests
make frontend-test
# Run E2E tests
cd edgequake_webui && pnpm exec playwright test markdown-test.spec.ts
# View results
make status# Build both projects
make build
# Start Docker stack with built images
make docker-up
# Check it's healthy
make status
# Stop when done
make docker-down| Service | URL | Purpose |
|---|---|---|
| Frontend | http://localhost:3000 | Main application UI |
| Backend API | http://localhost:8080 | REST API endpoints |
| Swagger UI | http://localhost:8080/swagger-ui | API documentation |
| Database | localhost:5432 | PostgreSQL with pgvector/AGE |
Configure these in .env file (copy from .env.example):
# LLM Provider (auto-detected from this)
OPENAI_API_KEY=sk-...
# Database (defaults to Docker PostgreSQL)
DATABASE_URL=postgres://edgequake:edgequake_secret@localhost:5432/edgequake
# Server config
EDGEQUAKE_PORT=8080
EDGEQUAKE_HOST=0.0.0.0
# Logging
RUST_LOG=info,edgequake=debugWithout OPENAI_API_KEY, the system uses a mock LLM provider (free, fast, no API key).
If port 3000 or 8080 is in use:
# Kill existing process on port 3000
lsof -ti :3000 | xargs kill -9
# Kill existing process on port 8080
lsof -ti :8080 | xargs kill -9# Reset database (deletes all data!)
make db-reset
# Check if database is accepting connections
make status# Clean and reinstall
make clean-all
make install
make frontend-dev# Increase Playwright timeout in playwright.config.ts
# Or run tests with more time:
cd edgequake_webui && pnpm exec playwright test --timeout=60000edgequake/docker/docker-compose.yml insteadcargo run for development (recompiles on save)make helpShows formatted help with all available targets and descriptions.
62e6adb
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.