- Add Google Scholar Alert collection via Gmail IMAP - Add Gmail App Password based authentication - Add Google Scholar environment variables to NAS compose configuration - Enable Google Scholar Alert source in config.nas.yaml - Disable subject filtering that incorrectly excluded Scholar alert emails - Parse paper titles and links from Google Scholar alert HTML emails - Deduplicate collected Scholar papers by normalized title - Filter Scholar UI/control links such as update alert and unsubscribe entries - Filter bracket-only alert labels such as [automotive radar] - Add Google Scholar specific relevance threshold - Keep global min_relevance at 2 - Set Google Scholar minimum relevance to 3 - Reduce Scholar candidates from 229 collected / 207 merged to 28 accepted - Add Gemini API rate limiting - Enforce minimum 13 second interval between Gemini requests - Apply shared rate limiter to abstract and full-text enrichment - Prevent Gemini free-tier 5 RPM quota errors - Verify retry processing of previously failed AI enrichment jobs - Verify end-to-end NAS workflow - Google Scholar Alert collection successful - Gemini enrichment successful without HTTP 429 errors - Joplin report generation and WebDAV synchronization successful
41 lines
1.4 KiB
YAML
41 lines
1.4 KiB
YAML
services:
|
|
paper-monitor-nas:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.nas
|
|
image: paper-monitor-nas:latest
|
|
container_name: paper-monitor-nas-run
|
|
restart: "no"
|
|
environment:
|
|
TZ: Asia/Seoul
|
|
|
|
CIRCUIT_BREAKER_STATE: /state/provider_circuit_breaker_state.json
|
|
|
|
# Paper APIs
|
|
IEEE_API_KEY: ${IEEE_API_KEY:-}
|
|
SEMANTIC_SCHOLAR_API_KEY: ${SEMANTIC_SCHOLAR_API_KEY:-}
|
|
CROSSREF_MAILTO: ${CROSSREF_MAILTO:-}
|
|
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
|
|
GEMINI_API_KEY: ${GEMINI_API_KEY}
|
|
GROQ_API_KEY: ${GROQ_API_KEY}
|
|
GOOGLE_SCHOLAR_GMAIL_ADDRESS: ${GOOGLE_SCHOLAR_GMAIL_ADDRESS}
|
|
GOOGLE_SCHOLAR_GMAIL_APP_PASSWORD: ${GOOGLE_SCHOLAR_GMAIL_APP_PASSWORD}
|
|
|
|
# Existing Joplin WebDAV sync target
|
|
JOPLIN_WEBDAV_URL: ${JOPLIN_WEBDAV_URL}
|
|
JOPLIN_WEBDAV_USERNAME: ${JOPLIN_WEBDAV_USERNAME}
|
|
JOPLIN_WEBDAV_PASSWORD: ${JOPLIN_WEBDAV_PASSWORD}
|
|
JOPLIN_NOTEBOOK: ${JOPLIN_NOTEBOOK:-Radar Papers}
|
|
JOPLIN_WRITE_ENABLED: ${JOPLIN_WRITE_ENABLED:-false}
|
|
JOPLIN_IGNORE_TLS_ERRORS: ${JOPLIN_IGNORE_TLS_ERRORS:-false}
|
|
|
|
# Unpaywall E-Mail address for OA status and PDF URL retrieval.
|
|
# This is required for the Unpaywall API.
|
|
UNPAYWALL_EMAIL: ${UNPAYWALL_EMAIL}
|
|
|
|
volumes:
|
|
- ./config.nas.yaml:/app/config.yaml:ro
|
|
- ./data:/app/data
|
|
- ./joplin-profile:/joplin-profile
|
|
- ./state:/state
|