RYO ARENA DOCS
Developer Reference

Environment Variables

Complete reference for all environment variables required to run RYO Arena.

Copy .env.example to .env.local and populate all required variables before running npm run dev.

Auth — Clerk

VariableRequiredDescription
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYPublishable key from the Clerk dashboard
CLERK_SECRET_KEYSecret key from the Clerk dashboard
NEXT_PUBLIC_CLERK_SIGN_IN_URLSet to /sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URLSet to /sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URLSet to /arena
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URLSet to /arena

Get your keys at clerk.com → your application → API Keys.

Database

VariableRequiredDescription
DATABASE_URLPostgreSQL connection string

A Neon free-tier database works well. Format: postgresql://user:password@host/dbname?sslmode=require

After setting this, run:

npx prisma migrate dev

Ryo MCP API

VariableRequiredDescription
RYO_API_URLBase URL for the Ryo MCP API (default: https://app-ryochan.com/api/mcp)
RYO_API_KEYBearer token for authenticating MCP tool calls

All six personas use the Ryo MCP API to fetch market data. Without this, no debates can run.

LLM (MixRoute)

VariableRequiredDescription
MIXROUTE_API_KEYAPI key for the MixRoute proxy (gpt-4o-mini)

Used by src/lib/llm.tsaskPersona(). MixRoute proxies OpenAI-compatible requests.

Web Search (Tavily)

VariableRequiredDescription
TAVILY_API_KEYTavily search API key

Used by the Narrative persona via webSearch() in src/server/mcp/tools.ts. Get a key at tavily.com.

Email (Nodemailer)

VariableRequiredDescription
GMAIL_USER⚠️Gmail address used as the sender for alert emails
GMAIL_APP_PASSWORD⚠️App-specific password (not your main Gmail password)

⚠️ Required only for email notification alerts.

To generate a Gmail app password:

  1. Enable 2-Step Verification on your Google account
  2. Go to Google Account → Security → App passwords
  3. Create a new app password for "Mail"

Inngest

VariableRequiredDescription
INNGEST_SIGNING_KEY⚠️Signing key for Inngest webhook verification

⚠️ Required in production. Not needed for local development with npm run inngest.

Get from inngest.com → your app → Keys.

On this page