# ============================================================ # PaperMate — environment variables # Copy this file to .env and fill in your values. # ============================================================ # ── LLM ───────────────────────────────────────────────────── # Provider: anthropic | openai | gemini | openrouter LLM_PROVIDER=openai LLM_MODEL=gpt-4o-mini ANTHROPIC_API_KEY=sk-ant-... OPENAI_API_KEY=sk-proj-... GEMINI_API_KEY=... OPENROUTER_API_KEY=sk-or-v1-... # ── PDF Parser ─────────────────────────────────────────────── # "landingai" (cloud, needs API key) | "docling" (self-hosted server) PDF_PARSER=docling # Docling via server — URL auto-discovered NTFY_TOPIC=papermate_pdf2md # LandingAI ADE (used when PDF_PARSER=landingai) LANDINGAI_API_KEY=... # ── Search ─────────────────────────────────────────────────── TAVILY_API_KEY=tvly-dev-... # ── Email (Resend) ─────────────────────────────────────────── RESEND_API_KEY=re_... RESEND_FROM_EMAIL=noreply@yourdomain.com # ── App ────────────────────────────────────────────────────── # Public URL used in email buttons (e.g. https://yourname-papermate.hf.space) APP_BASE_URL=http://localhost:8000 # ── Supabase ───────────────────────────────────────────────── SUPABASE_URL=https://your-project.supabase.co SUPABASE_SERVICE_ROLE_KEY=eyJ... SUPABASE_ANON_KEY=eyJ... SUPABASE_STORAGE_BUCKET=paper-mate-artifacts # Only needed for scripts/apply_migration.py (one-time DB setup), not the app # Format: postgresql://postgres:[PASSWORD]@db.[PROJECT-REF].supabase.co:5432/postgres DATABASE_URL=postgresql://postgres:...@db.your-project.supabase.co:5432/postgres # ── Auth / RBAC ────────────────────────────────────────────── # Comma-separated emails auto-promoted to admin on first login ADMIN_EMAILS=your@email.com # false = anonymous submit still works; true = require login to submit AUTH_REQUIRED_FOR_SUBMIT=false