mirror of
https://github.com/Patiun/com.gregkilmer.www.git
synced 2026-11-08 04:08:24 +00:00
Phase 6: sync jobs, inquiry and order forms
- Sync scheduler in the content service with a per-job cache (sync_cache), sync_runs reporting and Healthchecks pings. Jobs: Archidekt, BoardGameGeek, cover art (Open Library, TMDB, AniList), Suwayomi and Kavita reading progress, Bambuddy filament and Homebox material stock. A note's own value always wins over a synced one. - PersonalReader: updates only Library notes with a matching anilistId, changes to Greg's notes are held for review; Reading series with no note show as suggestions on the admin Overview. - /api/inquiries and /api/orders: Turnstile, rate limits, a saved copy in the content service (intake token) plus email over SMTP. Orders are re-checked against the live notes: accepted only when the category's ordersOpen is true and the line has capacity. - Admin Inbox for saved submissions. Options' inStock is optional so synced stock can fill it. All settings from process.env; .env.example per service. - Sources could not be reached from the build environment; parsers are tested against fixtures labelled as not live. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012aSbo2D1qP8cMFQCykf7kx
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# Content service settings. Copy to .env (never commit it) or set them in the
|
||||
# container's environment. See docs/content-service.md, "Running it".
|
||||
|
||||
# --- Sync jobs (docs/content-service.md, "Sync jobs") ------------------------
|
||||
# Public sources to run: archidekt (hourly), bgg (daily), covers (every 15 min).
|
||||
SYNC_JOBS=archidekt,bgg,covers
|
||||
# Optional per-job interval override, in minutes.
|
||||
# SYNC_ARCHIDEKT_MINUTES=60
|
||||
# SYNC_BGG_MINUTES=1440
|
||||
# SYNC_COVERS_MINUTES=15
|
||||
# Healthchecks ping URLs, one per job (start, success and fail are pinged).
|
||||
SYNC_ARCHIDEKT_HEALTHCHECK_URL=
|
||||
SYNC_BGG_HEALTHCHECK_URL=
|
||||
SYNC_COVERS_HEALTHCHECK_URL=
|
||||
# BoardGameGeek application token (sent as Authorization: Bearer), if BGG asks for one.
|
||||
BGG_TOKEN=
|
||||
# TMDB v3 API key or v4 read access token, for film and TV covers.
|
||||
TMDB_API_KEY=
|
||||
|
||||
# --- Homelab syncs on Cosmos (docs/content-service.md, "Homelab sources") ----
|
||||
# Each is enabled by its own URL and login; all are read only against the source.
|
||||
# PersonalReader, manga and manhwa (hourly). Its own read-only Suwayomi account.
|
||||
SUWAYOMI_URL=
|
||||
SUWAYOMI_USER=
|
||||
SUWAYOMI_PASS=
|
||||
# ui_login (default with a user), basic, or none.
|
||||
# SUWAYOMI_AUTH=ui_login
|
||||
# PersonalReader, light novels and books (daily).
|
||||
KAVITA_URL=
|
||||
KAVITA_API_KEY=
|
||||
# Filament in stock (hourly). UNVERIFIED API: check the path and mapping first.
|
||||
BAMBUDDY_URL=
|
||||
# BAMBUDDY_SPOOLS_PATH=/api/v1/inventory/spools
|
||||
# BAMBUDDY_API_KEY=
|
||||
# BAMBUDDY_AUTH_HEADER=
|
||||
# BAMBUDDY_GROUP=Filament
|
||||
# BAMBUDDY_MATERIALS=PLA,PETG
|
||||
# BAMBUDDY_MIN_GRAMS=50
|
||||
# Leather and paper in stock (hourly). Entries are name or name=Group.
|
||||
HOMEBOX_URL=
|
||||
HOMEBOX_USER=
|
||||
HOMEBOX_PASS=
|
||||
HOMEBOX_LABELS=leather,paper
|
||||
# HOMEBOX_LOCATIONS=
|
||||
SYNC_SUWAYOMI_HEALTHCHECK_URL=
|
||||
SYNC_KAVITA_HEALTHCHECK_URL=
|
||||
SYNC_BAMBUDDY_HEALTHCHECK_URL=
|
||||
SYNC_HOMEBOX_HEALTHCHECK_URL=
|
||||
|
||||
# --- Form submissions (docs/content-service.md, "Form submissions") ----------
|
||||
# Add an intake token for the site's forms to CONTENT_TOKENS, e.g.
|
||||
# CONTENT_TOKENS=reader:…,admin:…,intake:<24+ random characters>
|
||||
# The site uses the same value as CONTENT_INTAKE_TOKEN. It can only file submissions.
|
||||
# Largest attachment a submission may carry, in MB. Files go to DATA_DIR/submissions.
|
||||
SUBMISSION_MAX_MB=10
|
||||
Reference in New Issue
Block a user