Files
continuum-backend/README.md
T

1.1 KiB

continuum-backend

Cloud control plane for Continuum. Bun + ElysiaJS, PostgreSQL (via pgCat/PgBouncer, with pgvector for frame embeddings), Redis Streams, and Cloudflare R2 storage.

Run

bun install
cp .env.example .env   # fill in DATABASE_URL, REDIS_URL, R2_*, SUPABASE_JWT_SECRET
bun run db:generate && bun run db:migrate
bun run dev

Layout

  • src/db/ - Drizzle schema (printers, farms, print_jobs, frame_embeddings) and client, pointed at pgCat. src/db/validators.ts derives Elysia/TypeBox request validators straight from the Drizzle tables via drizzle-typebox, so the Postgres schema and the API validators come from one definition instead of two hand-synced ones.
  • src/s3/ - R2 presigned URL helpers (PUT for client uploads, GET for the edge proxy).
  • src/queue/ - Redis client + XADD helper pushing onto stream:camera_frames for continuum-ai-worker.
  • src/routes/ - /auth, /farms, /printers, /jobs, and the edge-gateway WebSocket at /ws/edge/v1.

frame_embeddings.embedding requires the vector extension: CREATE EXTENSION IF NOT EXISTS vector;