Copy-paste commands for common development tasks.
Tip: The root Makefile wraps most of these — run
make helpto see all targets.
make setup # Full setup: venv + deps + infraOr step by step:
make venv # Create Python virtual environment
make install # Install backend + frontend deps
make infra-up # Start PostgreSQL + Ollama containers
cp backend/.env.example backend/.env # Create .env from template
cp frontend/.env.example frontend/.env.local # Create frontend .env
# Edit backend/.env with your Azure DI credentialsmake dev # Start backend + frontend (Ctrl+C stops both)
make backend # Start backend only (port 8000)
make frontend # Start frontend only (port 3000)# Switch to Azure DI (default — fast, no local ML)
export AT_PIPELINE__MODE=azure_di
# Switch to Marker + Docling (fully offline)
export AT_PIPELINE__MODE=marker_doclingOr set in backend/.env:
AT_PIPELINE__MODE=azure_di
# Health check
curl http://localhost:8100/api/documents/health
# Upload and process a PDF
curl -X POST http://localhost:8100/api/documents/process-file \
-F "file=@path/to/document.pdf"
# Check results (replace DOC_ID)
curl http://localhost:8100/api/documents/DOC_ID
# List all documents
curl http://localhost:8100/api/documents/make test # Run unit tests
make test-all # Run unit + integration tests
make test-cov # Run with coverage reportmake lint # Lint backend (ruff)
make lint-fix # Auto-fix lint issues
make format # Auto-format backend
make format-check # Check formatting (no changes)
make lint-frontend # Lint frontend (ESLint)
make check-all # Run ALL checks (lint + format + types + tests)make infra-up # Start PostgreSQL + Ollama
make infra-down # Stop containers
make infra-status # Show container status
make infra-logs # Tail all container logsmake db-shell # Open psql shell
make db-logs # Tail PostgreSQL logs
make db-reset # Drop and recreate database (destructive!)make ollama-pull # Pull required models (gemma2:9b + 2b)
make ollama-list # List installed models
make ollama-logs # Tail Ollama logsmake docker-build # Build backend Docker image
make docker-up # Start full stack in Docker
make docker-down # Stop full stack
make docker-logs # Tail backend container logsmake kill # Kill dev servers + clear stale lock files
make clean # Remove caches and build artifactsIf make dev fails with "Unable to acquire lock", run make kill first — it removes the stale Next.js lock file even when no process is running.
make clean # Remove caches and build artifacts
make deep-clean # Also remove venv + node_modules
make reset # Full reset (deps + infra + database)export AT_ENV=dev # Set environment (dev/staging/prod/test)
cat backend/.env # Check current env vars| Service | URL |
|---|---|
| Backend API | http://localhost:8100 |
| Health check | http://localhost:8100/api/documents/health |
| Swagger docs | http://localhost:8100/docs |
| ReDoc | http://localhost:8100/redoc |
| Frontend | http://localhost:3100 |
| Ollama | http://localhost:11434 |