-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
55 lines (45 loc) · 2.34 KB
/
Copy path.env.example
File metadata and controls
55 lines (45 loc) · 2.34 KB
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
# ---------------------------------------------------------------------------
# null — environment configuration (copy to .env)
# All variables are optional; defaults keep privacy first.
# ---------------------------------------------------------------------------
# --- Server ---------------------------------------------------------------
# Port exposed on the host for the web UI.
NULL_HTTP_PORT=8080
# Comma-separated engines to enable (order = tie-break in ranking).
NULL_ENABLED_ENGINES=duckduckgo,googleapi,marginalia,mwmbl
# Official Google Custom Search JSON API (100 free queries/day): Google Cloud
# API key + Programmable Search Engine ID. Empty = Google stays out (the HTML
# scraper is JS-only and won't run either).
NULL_GOOGLE_CSE_KEY=
NULL_GOOGLE_CSE_ID=
# Optional — activates the Pexels image engine (free key: pexels.com/api).
NULL_PEXELS_API_KEY=
# Allowed browser origins for CORS (dev only matters; prod uses nginx).
# NULL_ALLOWED_ORIGINS=http://localhost:5173,http://localhost:3000
# --- Upstream / proxy -------------------------------------------------------
# Tor SOCKS5 proxy for Startpage + Mojeek (they block datacenter IPs but
# tolerate Tor). Requires a local Tor daemon:
# NULL_TOR_PROXY=socks5://127.0.0.1:9050
# Leave empty to route them normally.
NULL_TOR_PROXY=
# Enable HTML-scraping adapters (Google/Bing/Startpage/Mojeek/Ecosia/Marginalia).
# Operator's discretion: scraping Google/Bing may violate ToS and trigger bot
# detection; Mojeek/Ecosia/Marginalia are tolerant.
NULL_ALLOW_HTML_SCRAPE_ENGINES=true
# --- Privacy knobs --------------------------------------------------------
NULL_ANALYTICS_ENABLED=true # aggregate counters only, never queries
NULL_CACHE_ENABLED=true # in-memory result cache (not identity-bearing)
NULL_CACHE_TTL_SECONDS=600
NULL_LOG_QUERIES=false # keep false. Forever.
NULL_STRIP_TRACKING_PARAMS=true
NULL_USE_REDIRECT=true # /r?url= proxy for result links
# --- Rate limiting ----------------------------------------------------------
NULL_RATE_LIMIT_PER_MINUTE=30
NULL_RATE_LIMIT_BURST=8
NULL_TRUST_PROXY_HEADERS=true # behind nginx/reverse proxy
# --- Search defaults ---------------------------------------------------------
NULL_TIMEOUT_MS=6000
NULL_MAX_RESULTS_PER_ENGINE=15
NULL_MAX_RESULTS_TOTAL=50
NULL_DEFAULT_LANGUAGE=auto
NULL_DEFAULT_SAFE_SEARCH=0