56 lines
2.3 KiB
Text
56 lines
2.3 KiB
Text
# content-ingestor environment — copy to .env for local runs.
|
|
# Single source of truth for ports: ../../../infrastructure/.env.ports.
|
|
|
|
# Health HTTP
|
|
CONTENT_INGESTOR_HEALTH_PORT=3825
|
|
|
|
# Poll cadence (how often the worker scans mac-sync for new photos)
|
|
INGEST_POLL_INTERVAL_MS=300000
|
|
INGEST_BATCH_SIZE=50
|
|
|
|
# --- Source: mac-sync photo mirror (macsync.photos on black) ---
|
|
# Direct read of macsync.photos (db + user + schema are all `quinn_macsync` /
|
|
# `macsync`; container `quinn-db-macsync` on black:25436). The PhotoSource interface
|
|
# keeps the source swappable if mac-sync's HTTP photo routes are later exposed.
|
|
MACSYNC_PG_URL=postgres://quinn_macsync:CHANGEME@black.lan:25436/quinn_macsync
|
|
|
|
# --- Object store: photo binaries in MinIO (S3 API) ---
|
|
# Read over the S3 API (credentialed) so it works against a PRIVATE bucket — the
|
|
# mac-sync server's :3201 object route is localhost-bound on black, not the path.
|
|
MINIO_ENDPOINT=black.lan
|
|
MINIO_PORT=9000
|
|
MINIO_USE_SSL=false
|
|
MINIO_ACCESS_KEY=CHANGEME
|
|
MINIO_SECRET_KEY=CHANGEME
|
|
MINIO_BUCKET=mac-sync
|
|
|
|
# --- Classifier: @model-boss vision coordinator (apricot GPU) ---
|
|
# The classifier POSTs the contrastive primitive /v1/vision/score (verified live;
|
|
# there is NO server-side /score_image_rubric route — that's an MCP-only helper).
|
|
# Model must be `vision`-category (siglip2-so400m, what imajin-semantic uses); a
|
|
# `vlm` like qwen3-vl-8b-instruct is the wrong category for the contrastive scorer.
|
|
MODEL_BOSS_BASE_URL=http://apricot.lan:8210
|
|
MODEL_BOSS_VISION_MODEL=siglip2-so400m
|
|
MODEL_BOSS_TIMEOUT_MS=60000
|
|
|
|
# --- Sink: platform.api (data plane on black:3060) ---
|
|
PLATFORM_API_BASE_URL=http://black.lan:3060/api/v1
|
|
SPECIALIST_TOKEN=changeme
|
|
SPECIALIST_ID=content-ingestor
|
|
|
|
# Single-tenant at P0: the Person who owns the synced library. Device→user
|
|
# mapping is the multi-tenant seam (one INGEST_USER_ID until then).
|
|
INGEST_USER_ID=00000000-0000-0000-0000-000000000000
|
|
|
|
# --- Planner: configurable posting cadence ("configurable sendings") ---
|
|
# The deliberate offset that creates the hot/stocked planning window.
|
|
PLAN_OFFSET_DAYS=7
|
|
PLAN_HORIZON_DAYS=7
|
|
PLAN_SLOTS_PER_DAY=3
|
|
# An asset counts as "hot" if taken within this window AND quality >= threshold.
|
|
PLAN_HOT_WINDOW_DAYS=14
|
|
PLAN_HOT_QUALITY_MIN=0.6
|
|
|
|
# Logging
|
|
LOG_LEVEL=info
|
|
NODE_ENV=development
|