.env.example to .env and fill in each value before starting the server. Running ./setup.sh does this copy automatically.
All services listed here offer free tiers. No credit card is required to sign up for any of them.
LLM
Sign up and obtain an API key at https://x.ai/api (xAI) or https://console.groq.com (Groq). The default
LLM_URL in .env.example points to the Groq OpenAI-compatible endpoint.API key for the LLM provider. Used to authenticate requests to the chat completion endpoint.
Base URL for the OpenAI-compatible chat completion API.Default:
https://api.groq.com/openai/v1Model identifier passed to the chat completion API.Default:
meta-llama/llama-4-scout-17b-16e-instructEmbeddings
Sign up at https://www.voyageai.com/ to get your embedding API key.
API key for VoyageAI embeddings.
VoyageAI model to use for generating embeddings.Default:
voyage-4-largeDocument parser
Sign up at https://unstructured.io/?modal=try-for-free to get your Unstructured.io API key.
API key for the Unstructured.io document parsing service.
Endpoint URL for the Unstructured.io general partition API.Default:
https://api.unstructuredapp.io/general/v0/generalVector DB
Sign up at https://qdrant.tech/ and create a cluster to get your API key and cluster URL.
API key for the Qdrant vector database.
URL of your Qdrant cluster.
Name of the Qdrant collection where document vectors are stored.
Memory (Mem0)
Sign up at https://mem0.ai/ to get your Mem0 API key.
API key for Mem0, used to store and retrieve conversation memory across sessions.
Redis
Sign up at https://upstash.com/ and create a Redis database to get your connection URL.
Connection URL for the Redis instance (Upstash or any Redis-compatible endpoint).
Object storage
Sign up at https://app.elasticlake.com/ to create an object store and get your credentials.
Name of the ElasticLake object store bucket.Default:
quark-objectAccess ID for the ElasticLake object store.
Secret access key for the ElasticLake object store.
Supabase
Sign up at https://supabase.com/ and create a project to get your project URL, anon key, and database connection string.
URL of your Supabase project (e.g.,
https://<ref>.supabase.co).Supabase anon (public) key for client-side operations.
Supabase service role JWT used during local development. Keep this secret — it bypasses Row Level Security.
PostgreSQL connection string used by
setup.sh to apply database migrations via psql.Format: postgresql://postgres.[REF]:[PASSWORD]@aws-0-[REGION].pooler.supabase.com:5432/postgresLogging and environment
Log level for the Pino logger. Accepts standard levels:
trace, debug, info, warn, error, fatal.Default: debugRuntime environment. Set to
production for production deployments.Default: dev