Local Development
environment
Run the full stack locally
Iris runs as two processes locally: a Vite frontend on port 3000 and a FastAPI backend on port 8000. Both read from a shared .env at the repo root.
prerequisites
- Node.js 20+ or Bun
- Python 3.11+
- FFmpeg + FFprobe
- PostgreSQL (or Docker)
Environment variables
Create a.env file at the repo root. See .env.example for the full list.
Key variables:
| Variable | Purpose | Required |
|---|---|---|
GEMINI_API_KEY | Gemini vision + text generation | Yes (or use stubs) |
DATABASE_URL | PostgreSQL connection string | Yes |
USE_AI_STUBS | true for offline dev, false for real AI | No (defaults to true) |
VULTR_ACCESS_KEY / VULTR_SECRET_KEY | Object storage for media | No (local storage fallback) |
SUPABASE_URL / SUPABASE_JWT_SECRET | Authentication | No (anon sessions work) |
VITE_SUPABASE_URL / VITE_SUPABASE_ANON_KEY | Frontend auth client | No |
GPU_WORKER_URL | SAM2 segmentation worker | No |
ELEVENLABS_API_KEY | TTS narration | No |
Starting the frontend
http://localhost:3000.
Starting the backend
http://localhost:8000.
Docker alternative
Stub mode
SetUSE_AI_STUBS=true in your .env to run without any API keys. All AI calls return deterministic placeholder responses. Good for UI development and testing.