Skip to Content
Backend ServicesOverview & Docker

Backend Overview

Aura’s backends form a polyglot microservices stack — Node/Express where I/O dominates, Python/FastAPI where ML libraries live. Everything is orchestrated by a single docker-compose.yml.

docker compose up
ServiceStackPortRole
API ProxyExpress3005Key isolation, rate limiting, metering
Vector SearchFastAPI + ChromaDB3001Semantic search
Media PipelineExpress + FFmpeg3002 / 3003 (WS)Frame extraction, transcription
Graph KnowledgeExpress + SQLite3004Concept graph, learning paths
CLIP EmbeddingsFastAPI + CLIP ViT-B/323006Visual embeddings

Every service is optional. The frontend detects availability via /health endpoints and falls back to browser-local alternatives — local embeddings, in-browser frame extraction, IndexedDB persistence. Start only what you need.

Environment wiring

.env
VITE_VECTOR_BACKEND_URL=http://localhost:3001 VITE_MEDIA_BACKEND_URL=http://localhost:3002 VITE_GRAPH_BACKEND_URL=http://localhost:3004

Volumes

docker-compose.yml declares persistent volumes for vector-data (ChromaDB), media-temp (FFmpeg scratch), and clip-data (model cache), so indexes and models survive restarts.

Health convention

Every service exposes GET /health; most expose GET /stats for operational counters. The frontend’s graceful-degradation logic and the compose healthchecks both rely on these.