File size: 1,527 Bytes
fba30db
 
 
 
 
 
1548c1f
 
 
fba30db
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1b18758
 
 
 
 
 
 
fba30db
 
 
 
 
1548c1f
 
fba30db
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# === 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=