# ── Application ────────────────────────────────────────────────────────────── ENV=dev # ── Database ────────────────────────────────────────────────────────────────── DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/adiuva # ── Redis ───────────────────────────────────────────────────────────────────── REDIS_URL=redis://localhost:6379/0 # ── Auth (JWT RS256) ────────────────────────────────────────────────────────── # Public key for optional local JWT verification (Traefik ForwardAuth handles # this in production — services trust X-User-* headers from Traefik). # Generate keypair: # openssl genpkey -algorithm RSA -out private.pem -pkeyopt rsa_keygen_bits:2048 # openssl rsa -in private.pem -pubout -out public.pem # Paste PEM content with literal \n for newlines. JWT_PUBLIC_KEY= JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30 JWT_REFRESH_TOKEN_EXPIRE_DAYS=30 # ── LLM ─────────────────────────────────────────────────────────────────────── # LiteLLM model identifiers — change to swap providers without code changes. # Examples: gpt-4o, anthropic/claude-sonnet-4-20250514, gemini/gemini-pro, ollama/llama3 OPENAI_API_KEY= ANTHROPIC_API_KEY= GOOGLE_API_KEY= LLM_MODEL=gpt-4o LLM_ROUTER_MODEL=gpt-4o-mini # ── Stripe (leave empty to stub billing) ────────────────────────────────────── STRIPE_SECRET_KEY= STRIPE_WEBHOOK_SECRET= # ── AWS / S3 ────────────────────────────────────────────────────────────────── S3_BUCKET=adiuva S3_REGION=us-east-1 S3_ENDPOINT_URL= AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= # For MinIO (homelab): S3_ENDPOINT_URL=http://minio:9000 # ── Vector Store ────────────────────────────────────────────────────────────── # Pinecone is used when PINECONE_API_KEY is set; otherwise falls back to Qdrant. PINECONE_API_KEY= PINECONE_INDEX=adiuva QDRANT_URL= QDRANT_API_KEY= # For local Qdrant (homelab): QDRANT_URL=http://qdrant:6333 # ── CORS ────────────────────────────────────────────────────────────────────── # Comma-separated list parsed by Settings (override default if needed) # CORS_ORIGINS=["app://.","http://localhost:3000"]