Iris
Self-hosting

Environment variables

Reference for every configuration option across the API, web app, and database package.

Three env files configure an Iris deployment. Each app ships a commented .env.example to copy from.

API — apps/api/.env

Database

VariableRequiredDefaultDescription
DATABASE_URLYespostgresql://iris:iris@localhost:5432/irisPostgreSQL connection string

Server

VariableRequiredDefaultDescription
PORTNo3000Port the NestJS API listens on
WEB_URLYeshttp://localhost:3001URL of the web app (CORS / trusted origin)

Auth (better-auth)

VariableRequiredDefaultDescription
BETTER_AUTH_SECRETYesSession signing secret (openssl rand -hex 32). Must match the web app's value.
BETTER_AUTH_URLYeshttp://localhost:3001Public URL of the web app

Queue

VariableRequiredDefaultDescription
REDIS_URLYesredis://localhost:6379Redis connection for the Bull queue

Browser automation

VariableRequiredDefaultDescription
BROWSER_ENVNoLOCALLOCAL (Playwright on this machine) or BROWSERBASE
BROWSERBASE_API_KEYWhen BROWSERBASEFrom browserbase.com
BROWSERBASE_PROJECT_IDWhen BROWSERBASEBrowserbase project to run sessions in

LLM (Google Gemini)

VariableRequiredDefaultDescription
GEMINI_API_KEYYesFrom Google AI Studio
GOOGLE_GENERATIVE_AI_API_KEYYesSame key, read by the AI SDK
AGENT_MODELNogoogle/gemini-2.5-flashModel used by the browser agent

Artifact storage (MinIO / S3-compatible)

Defaults match the bundled docker-compose.yml; override for external storage.

VariableDefaultDescription
MINIO_ENDPOINTlocalhostMinIO/S3 host
MINIO_PORT9000MinIO/S3 port
MINIO_ACCESS_KEYminioadminAccess key
MINIO_SECRET_KEYminioadminSecret key
MINIO_BUCKETiris-artifactsBucket for screenshots and frames
MINIO_USE_SSLfalseUse HTTPS to reach the endpoint
MINIO_PUBLIC_URLhttp://localhost:9000URL browsers use to load stored artifacts

LLM observability (optional)

VariableDefaultDescription
HELICONE_API_KEYLeave empty to call Gemini directly (no observability)
HELICONE_BASE_URLhttps://generativelanguage.hconeai.comHelicone proxy endpoint

Web — apps/web/.env.local

VariableRequiredDefaultDescription
NEXT_PUBLIC_API_URLYeshttp://localhost:3000URL of the NestJS API
BETTER_AUTH_SECRETYesMust match BETTER_AUTH_SECRET in apps/api/.env

Database package — packages/database/.env

Used by Prisma CLI commands (pnpm db:generate, pnpm db:migrate, pnpm db:studio).

VariableRequiredDefaultDescription
DATABASE_URLYespostgresql://iris:iris@localhost:5432/irisSame value as the API's

On this page