-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
62 lines (50 loc) · 2.65 KB
/
Copy path.env.example
File metadata and controls
62 lines (50 loc) · 2.65 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
56
57
58
59
60
61
62
# Local development
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/citetrack
# App environment: "local" exposes admin-only pages (History, Settings).
# "prod" hides those pages from the nav and 404s on direct access.
# Defaults to "local" if unset. Set this to "prod" in production deploys.
VITE_APP_ENV=local
# Public-tool mode. Default `false` = local install, all features visible.
# Set `true` on a shared VPS deployment to hide History/Settings/Log API
# from the nav and 404 their server endpoints. Pairs with VITE_APP_ENV=prod.
#
# Two flags by design (defense in depth):
# - VITE_PUBLIC_MODE is inlined into the client bundle and drives the
# UI/UX gate (nav visibility + beforeLoad 404). Visible in DevTools.
# - PUBLIC_MODE is server-only and drives assertLocalOnly() inside
# server functions — the real authorization check. Cannot be tampered.
# Set BOTH to the same value in deployment.
PUBLIC_MODE=false
VITE_PUBLIC_MODE=false
# Job queue. Concurrency=1 is the safe default for a 2cpu/2gb VPS — a
# single large-PDF extraction can spike to 500MB RAM. Raise carefully.
MAX_CONCURRENT_JOBS=1
# Hard cap on uploaded thesis / source PDF page count. Files larger than
# this are refused at upload with a clear message. 250 ≈ a typical
# undergraduate skripsi; raise for monographs or technical theses.
MAX_PDF_PAGES=250
# How long completed jobs are kept before the retention cron deletes
# them (cascade clears pages, citations, source PDFs, embeddings).
JOB_RETENTION_DAYS=7
# Contact email appended to outbound OpenAlex / CrossRef requests as
# `mailto=` / `User-Agent: ... mailto:`. Gets you into their "polite
# pool" with much higher per-IP rate limits. Recommended for prod.
POLITE_POOL_EMAIL=
# Docker Compose (uncomment if using docker compose)
# DATABASE_URL=postgresql://postgres:postgres@db:5432/citetrack
# Reference-PDF auto-detect: opt-in providers.
# Leaving any of these blank simply disables that provider — the others
# continue to run. No-key providers (CrossRef, OpenAlex, arXiv, Europe PMC,
# Semantic Scholar free tier, PubMed free tier) are always on.
# Unpaywall OA discovery (by DOI). Free but the API wants a contact email.
# https://unpaywall.org/products/api
UNPAYWALL_EMAIL=
# CORE open-access full-text search (by title). Requires a free API key.
# https://core.ac.uk/services/api
CORE_API_KEY=
# Semantic Scholar Academic Graph — optional key for higher rate limits
# (free tier works without it). https://api.semanticscholar.org/
SEMANTIC_SCHOLAR_API_KEY=
# NCBI E-utilities (PubMed / PMC) — optional key for higher rate limits
# (free tier works without it). https://www.ncbi.nlm.nih.gov/account/settings/
NCBI_API_KEY=