Self-host email/password accounts enable the existing collaborator invite flow without Clerk; first admin inherits users/local projects. Co-authored-by: Cursor <cursoragent@cursor.com>
89 lines
3.7 KiB
Bash
89 lines
3.7 KiB
Bash
# Pinscope Backend — Environment Variables
|
|
# Copy to backend/.env and fill in values. Only DEEPSEEK_API_KEY is required.
|
|
|
|
# -- AI (DeepSeek, default) --------------------------------------------------
|
|
# Key from https://platform.deepseek.com/
|
|
DEEPSEEK_API_KEY=sk-...
|
|
DEEPSEEK_BASE_URL=https://api.deepseek.com
|
|
DEEPSEEK_MODEL=deepseek-flash
|
|
DEEPSEEK_VISION_MODEL=deepseek-flash
|
|
# enabled (default) | disabled — thinking mode on DeepSeek V4
|
|
DEEPSEEK_THINKING=enabled
|
|
# Official values: low | high | max
|
|
DEEPSEEK_REASONING_EFFORT=high
|
|
# PDF ingest (DeepSeek cannot take native PDFs)
|
|
# DEEPSEEK_PDF_MAX_CHARS=500000
|
|
# DEEPSEEK_PDF_IMAGE_PAGES=32
|
|
|
|
# Per-stage DeepSeek model overrides (leave empty to use the defaults below)
|
|
# V4.1 Flash is natively multimodal — extraction and review share deepseek-flash.
|
|
# MODEL_PINTABLE_DEEPSEEK=deepseek-flash
|
|
# MODEL_PATTERN_DEEPSEEK=deepseek-flash
|
|
# MODEL_SPECS_DEEPSEEK=deepseek-flash
|
|
# MODEL_VALIDATION_DEEPSEEK=deepseek-flash
|
|
# MODEL_AUTO_RESOLVE_DEEPSEEK=deepseek-flash
|
|
# MODEL_NORMALIZE_DEEPSEEK=deepseek-flash
|
|
|
|
# -- AI provider routing -----------------------------------------------------
|
|
# Default provider for every stage; per-stage env vars override.
|
|
# Valid values: deepseek | gemini (anthropic is ignored and coerced to deepseek)
|
|
PROVIDER_DEFAULT=deepseek
|
|
# PROVIDER_VALIDATION=deepseek
|
|
# PROVIDER_AUTO_RESOLVE=deepseek
|
|
|
|
# Anthropic is not used. Do not set ANTHROPIC_API_KEY.
|
|
|
|
# -- Gemini (optional) -------------------------------------------------------
|
|
# GEMINI_API_KEY=
|
|
# GEMINI_MODEL=gemini-3-flash-preview
|
|
# MODEL_VALIDATION_GEMINI=
|
|
|
|
# -- Per-stage fallback ------------------------------------------------------
|
|
# If set, the stage retries once. Anthropic is ignored (DeepSeek only).
|
|
# FALLBACK_PROVIDER_VALIDATION=deepseek
|
|
# FALLBACK_MODEL_VALIDATION=deepseek-flash
|
|
|
|
# -- Storage -----------------------------------------------------------------
|
|
# Set GCS_BUCKET to store projects/library in Google Cloud Storage.
|
|
# Leave empty for local mode (uses the data/ directory).
|
|
GCS_BUCKET=
|
|
|
|
# -- CORS --------------------------------------------------------------------
|
|
# Frontend URL(s), JSON list
|
|
CORS_ORIGINS=["http://localhost:3000","http://127.0.0.1:3000","http://localhost:18742","http://127.0.0.1:18742"]
|
|
|
|
# -- Auth (self-host) --------------------------------------------------------
|
|
# Set AUTH_JWT_SECRET to enable Pinscope email/password accounts and
|
|
# multi-user project collaborators (invite by email). Clerk keys, if set,
|
|
# take priority over local auth.
|
|
# AUTH_JWT_SECRET=change-me-to-a-long-random-string
|
|
# Comma-separated emails that are admin on register (first user is always admin)
|
|
# AUTH_ADMIN_EMAILS=you@example.com
|
|
|
|
# -- Clerk (optional cloud auth) ---------------------------------------------
|
|
# CLERK_SECRET_KEY=
|
|
# CLERK_PUBLISHABLE_KEY=
|
|
# CLERK_JWKS_URL=
|
|
# Optional catalog datasheet source and parameter-based passive auto-resolve.
|
|
# Order: BOM URL → LCSC → manufacturer PDF URLs → Mouser → DigiKey.
|
|
# DIGIKEY_CLIENT_ID=
|
|
# DIGIKEY_CLIENT_SECRET=
|
|
# DIGIKEY_ENVIRONMENT=production
|
|
# DIGIKEY_LOCALE_SITE=US
|
|
# DIGIKEY_LOCALE_LANGUAGE=en
|
|
# DIGIKEY_LOCALE_CURRENCY=USD
|
|
|
|
# -- Mouser (optional) -------------------------------------------------------
|
|
# Search API key from mouser.com/api-hub. Same family/packing match as DigiKey.
|
|
# MOUSER_API_KEY=
|
|
|
|
# -- Email notifications (optional) ------------------------------------------
|
|
# Gmail API via domain-wide delegation. Leave EMAIL_SENDER empty to disable.
|
|
# Service account credentials come from GOOGLE_APPLICATION_CREDENTIALS.
|
|
EMAIL_SENDER=
|
|
EMAIL_FRONTEND_URL=
|
|
# Fixed admin email for pipeline-started notifications (leave empty to disable)
|
|
EMAIL_ADMIN_NOTIFY=
|
|
# Recipient for /api/contact form submissions (leave empty to disable)
|
|
CONTACT_RECIPIENT=
|