68 lines
1.5 KiB
Plaintext
68 lines
1.5 KiB
Plaintext
# Flask
|
|
FLASK_ENV=development
|
|
API_SECRET_KEY=
|
|
|
|
# PocketBase
|
|
POCKETBASE_URL=http://pocketbase:8090
|
|
POCKETBASE_ADMIN_EMAIL=
|
|
POCKETBASE_ADMIN_PASSWORD=
|
|
|
|
# Redis / RQ — shared with Firecrawl
|
|
REDIS_URL=redis://bettersight-redis:6379
|
|
|
|
# OpenRouter
|
|
OPENROUTER_API_KEY=
|
|
OPENROUTER_FREE_MODELS=google/gemini-flash-1.5,meta-llama/llama-3.1-8b-instruct,mistralai/mistral-7b-instruct
|
|
OPENROUTER_FALLBACK_MODEL=anthropic/claude-haiku-4-5
|
|
|
|
# Firecrawl (self-hosted)
|
|
FIRECRAWL_URL=http://firecrawl:3002
|
|
|
|
# Proxy — Primary (Webshare)
|
|
WEBSHARE_USER=
|
|
WEBSHARE_PASS=
|
|
|
|
# Proxy — Fallback (Bright Data — pay-as-you-go, auto-escalated per domain)
|
|
BRIGHTDATA_USER=
|
|
BRIGHTDATA_PASS=
|
|
|
|
# Proxy settings
|
|
PROXY_ESCALATION_THRESHOLD=2
|
|
|
|
# Stripe
|
|
STRIPE_SECRET_KEY=
|
|
STRIPE_WEBHOOK_SECRET=
|
|
STRIPE_PRICE_ANALYSE=
|
|
STRIPE_PRICE_DISCOVER=
|
|
STRIPE_PRICE_INTELLIGENCE=
|
|
|
|
# Transactional email
|
|
RESEND_API_KEY=
|
|
|
|
# Error tracking
|
|
SENTRY_DSN=
|
|
|
|
# Hetzner Object Storage (backups)
|
|
HETZNER_S3_ACCESS_KEY=
|
|
HETZNER_S3_SECRET_KEY=
|
|
HETZNER_S3_ENDPOINT=https://fsn1.your-objectstorage.com
|
|
HETZNER_S3_BUCKET=bettersight-backups
|
|
|
|
# Gotify (owner monitoring — never client-facing)
|
|
GOTIFY_URL=
|
|
GOTIFY_APP_TOKEN=
|
|
|
|
# Google Sheets (existing from app.py — moved here in Phase 2)
|
|
GOOGLE_SERVICE_ACCOUNT_JSON=
|
|
SHEET_ID=
|
|
STANDARD_TAB=
|
|
NGS_TAB=
|
|
|
|
# Bettersight template Sheet — hosted share URL, served via GET
|
|
# /account/template (CLAUDE.md §15 Template Import)
|
|
TEMPLATE_SHEET_URL=
|
|
|
|
# Frontend (Vite)
|
|
VITE_SENTRY_DSN=
|
|
VITE_ENV=development
|