Big changes
This commit is contained in:
parent
4240ad38e2
commit
e3f0d63fec
99 changed files with 8804 additions and 1731 deletions
61
.env.example
61
.env.example
|
|
@ -1,26 +1,52 @@
|
|||
# ------------------------------
|
||||
# Compose + Database
|
||||
# ------------------------------
|
||||
POSTGRES_DB=scholar
|
||||
POSTGRES_USER=scholar
|
||||
POSTGRES_PASSWORD=change-me
|
||||
|
||||
DATABASE_URL=postgresql+asyncpg://scholar:scholar@db:5432/scholar
|
||||
# Optional override. If empty, tests derive "<DATABASE_URL db name>_test".
|
||||
TEST_DATABASE_URL=
|
||||
SCHOLARR_IMAGE=justinzeus/scholarr:latest
|
||||
|
||||
# ------------------------------
|
||||
# App Runtime + Networking
|
||||
# ------------------------------
|
||||
APP_NAME=scholarr
|
||||
APP_HOST=0.0.0.0
|
||||
APP_PORT=8000
|
||||
APP_HOST_PORT=8000
|
||||
APP_RELOAD=0
|
||||
MIGRATE_ON_START=1
|
||||
FRONTEND_ENABLED=1
|
||||
FRONTEND_DIST_DIR=/app/frontend/dist
|
||||
|
||||
# ------------------------------
|
||||
# Database Pool
|
||||
# ------------------------------
|
||||
DATABASE_POOL_MODE=auto
|
||||
DATABASE_POOL_SIZE=5
|
||||
DATABASE_POOL_MAX_OVERFLOW=10
|
||||
DATABASE_POOL_TIMEOUT_SECONDS=30
|
||||
|
||||
# ------------------------------
|
||||
# Frontend Dev Overrides
|
||||
# ------------------------------
|
||||
FRONTEND_HOST_PORT=5173
|
||||
CHOKIDAR_USEPOLLING=1
|
||||
VITE_DEV_API_PROXY_TARGET=http://app:8000
|
||||
MIGRATE_ON_START=1
|
||||
|
||||
# ------------------------------
|
||||
# Auth + Session
|
||||
# ------------------------------
|
||||
SESSION_SECRET_KEY=replace-with-a-long-random-secret-at-least-32-characters
|
||||
SESSION_COOKIE_SECURE=1
|
||||
LOGIN_RATE_LIMIT_ATTEMPTS=5
|
||||
LOGIN_RATE_LIMIT_WINDOW_SECONDS=60
|
||||
|
||||
# ------------------------------
|
||||
# HTTP Security Headers + CSP
|
||||
# ------------------------------
|
||||
SECURITY_HEADERS_ENABLED=1
|
||||
SECURITY_X_CONTENT_TYPE_OPTIONS=nosniff
|
||||
SECURITY_X_FRAME_OPTIONS=DENY
|
||||
|
|
@ -36,16 +62,23 @@ SECURITY_STRICT_TRANSPORT_SECURITY_ENABLED=0
|
|||
SECURITY_STRICT_TRANSPORT_SECURITY_MAX_AGE=31536000
|
||||
SECURITY_STRICT_TRANSPORT_SECURITY_INCLUDE_SUBDOMAINS=1
|
||||
SECURITY_STRICT_TRANSPORT_SECURITY_PRELOAD=0
|
||||
LOGIN_RATE_LIMIT_ATTEMPTS=5
|
||||
LOGIN_RATE_LIMIT_WINDOW_SECONDS=60
|
||||
|
||||
# ------------------------------
|
||||
# Logging
|
||||
# ------------------------------
|
||||
LOG_LEVEL=INFO
|
||||
LOG_FORMAT=console
|
||||
LOG_REQUESTS=1
|
||||
LOG_UVICORN_ACCESS=0
|
||||
LOG_REQUEST_SKIP_PATHS=/healthz
|
||||
LOG_REDACT_FIELDS=
|
||||
|
||||
# ------------------------------
|
||||
# Scheduler + Ingestion Safety
|
||||
# ------------------------------
|
||||
SCHEDULER_ENABLED=1
|
||||
SCHEDULER_TICK_SECONDS=60
|
||||
SCHEDULER_QUEUE_BATCH_SIZE=10
|
||||
INGESTION_AUTOMATION_ALLOWED=1
|
||||
INGESTION_MANUAL_RUN_ALLOWED=1
|
||||
INGESTION_MIN_RUN_INTERVAL_MINUTES=15
|
||||
|
|
@ -63,7 +96,10 @@ INGESTION_CONTINUATION_QUEUE_ENABLED=1
|
|||
INGESTION_CONTINUATION_BASE_DELAY_SECONDS=120
|
||||
INGESTION_CONTINUATION_MAX_DELAY_SECONDS=3600
|
||||
INGESTION_CONTINUATION_MAX_ATTEMPTS=6
|
||||
SCHEDULER_QUEUE_BATCH_SIZE=10
|
||||
|
||||
# ------------------------------
|
||||
# Scholar Images + Name Search Safety
|
||||
# ------------------------------
|
||||
SCHOLAR_IMAGE_UPLOAD_DIR=/var/lib/scholarr/uploads
|
||||
SCHOLAR_IMAGE_UPLOAD_MAX_BYTES=2000000
|
||||
SCHOLAR_NAME_SEARCH_ENABLED=1
|
||||
|
|
@ -76,21 +112,34 @@ SCHOLAR_NAME_SEARCH_COOLDOWN_BLOCK_THRESHOLD=1
|
|||
SCHOLAR_NAME_SEARCH_COOLDOWN_SECONDS=1800
|
||||
SCHOLAR_NAME_SEARCH_ALERT_RETRY_COUNT_THRESHOLD=2
|
||||
SCHOLAR_NAME_SEARCH_ALERT_COOLDOWN_REJECTIONS_THRESHOLD=3
|
||||
|
||||
# ------------------------------
|
||||
# OA Enrichment + PDF Resolution
|
||||
# ------------------------------
|
||||
UNPAYWALL_ENABLED=1
|
||||
UNPAYWALL_EMAIL=
|
||||
UNPAYWALL_TIMEOUT_SECONDS=4.0
|
||||
UNPAYWALL_MIN_INTERVAL_SECONDS=0.6
|
||||
UNPAYWALL_MAX_ITEMS_PER_REQUEST=20
|
||||
UNPAYWALL_RETRY_COOLDOWN_SECONDS=1800
|
||||
UNPAYWALL_PDF_DISCOVERY_ENABLED=1
|
||||
UNPAYWALL_PDF_DISCOVERY_MAX_CANDIDATES=5
|
||||
UNPAYWALL_PDF_DISCOVERY_MAX_HTML_BYTES=500000
|
||||
PDF_AUTO_RETRY_INTERVAL_SECONDS=86400
|
||||
PDF_AUTO_RETRY_FIRST_INTERVAL_SECONDS=3600
|
||||
PDF_AUTO_RETRY_MAX_ATTEMPTS=3
|
||||
CROSSREF_ENABLED=1
|
||||
CROSSREF_MAX_ROWS=10
|
||||
CROSSREF_TIMEOUT_SECONDS=8.0
|
||||
CROSSREF_MIN_INTERVAL_SECONDS=0.6
|
||||
CROSSREF_MAX_LOOKUPS_PER_REQUEST=8
|
||||
|
||||
# ------------------------------
|
||||
# Startup Bootstrap + DB Wait
|
||||
# ------------------------------
|
||||
BOOTSTRAP_ADMIN_ON_START=0
|
||||
BOOTSTRAP_ADMIN_EMAIL=
|
||||
BOOTSTRAP_ADMIN_PASSWORD=
|
||||
BOOTSTRAP_ADMIN_FORCE_PASSWORD=0
|
||||
|
||||
DB_WAIT_TIMEOUT_SECONDS=60
|
||||
DB_WAIT_INTERVAL_SECONDS=2
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue