# === DeepShield backend config example === # Server APP_HOST=0.0.0.0 APP_PORT=8000 DEBUG=false CORS_ORIGINS=["http://localhost:5173", "https://deepshield.ar07xd.com"] PUBLIC_APP_URL=https://deepshield.ar07xd.com PUBLIC_API_URL=https://ar07xd-deepshield.hf.space # === Database === # SQLite (default — zero-config, great for dev / college demo): DATABASE_URL=sqlite:///./deepshield.db # Postgres (production path — run migrations are applied automatically # by init_db via ALTER TABLE when new columns are missing): # DATABASE_URL=postgresql+psycopg2://deepshield:CHANGEME@localhost:5432/deepshield # Phase 19.1 — SHA-256 dedup cache TTL (days) CACHE_TTL_DAYS=30 # Phase 19.2 — object storage root (content-addressed media + thumbnails) MEDIA_ROOT=./media # File upload MAX_UPLOAD_SIZE_MB=100 UPLOAD_DIR=./temp_uploads # AI models PRELOAD_MODELS=true DEVICE=cpu # LLM explainability (Phase 12) LLM_PROVIDER=gemini LLM_API_KEY= LLM_MODEL=gemini-1.5-flash # News lookup (Phase 13) NEWS_API_KEY= NEWS_API_BASE_URL=https://newsdata.io/api/1/latest NEWS_API_ARCHIVE_BASE_URL=https://newsdata.io/api/1/archive NEWS_API_LANGUAGES=en,hi NEWS_API_RECENT_TIMEFRAME=1 NEWS_API_OLDER_DAYS=7 NEWS_API_PAGE_SIZE=10 NEWS_API_PRIMARY_COUNTRY=in # Auth (REQUIRED in production — generate with python -c "import secrets; print(secrets.token_urlsafe(48))") JWT_SECRET_KEY=change-me-in-production JWT_ALGORITHM=HS256 JWT_EXPIRATION_MINUTES=1440 GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= # Optional metadata writer EXIFTOOL_PATH=