4b54a32d64
WG-internal FastAPI+HTMX front end for large-document ingestion into the Muninn KB, over the muninn-gate API (browser -> mimir-inbox -> staging -> path-addressed POST /jobs). Co-located on corviduo-dev with the gate (:8090) and the worldtree-personal muninn watcher per the operator's 2026-08-01 co-location ruling (reversing the earlier off-box/NFS plan; worldtree-dev approved the box placement). - Dockerfile: python:3.11-slim + uv sync --no-dev --frozen (--no-dev is load-bearing; the dev group's muninn-dispatch path source is absent in-image and INV-MI-7 forbids importing it). Single-stage by design — src/ stays in the final image (uv installs the project editable-linked to src/). - compose.yaml: uid 1000, host-net bind 10.250.50.152:8091, staging :rw, TCP-liveness healthcheck (deliberately not coupled to gate reachability). - Built from vh/mimir-inbox HEAD c8ab38f; deployed + healthy. Records the open-in-place claim semantics (worldtree-dev, runner.py:362-367) and the INV-MI-19 retention rule (staged files persist until job terminal; gate retry returns a false-200 on a swept source) in persistent memory.
34 lines
1.7 KiB
Bash
34 lines
1.7 KiB
Bash
# mimir-inbox runtime config — copy to .env (gitignored on server) and fill the key.
|
|
# The 7 RUNTIME vars ONLY. The two DEV-ONLY drift-guard vars
|
|
# (WORLDTREE_CONFIG_PATH, MUNINN_GATE_REPO) MUST NOT be set here — they belong
|
|
# only to the test environment. All are validated at boot; any failure aborts
|
|
# startup with a secret-redacted message naming the variable.
|
|
|
|
# muninn-gate front door — the co-located gate on corviduo-dev (host network).
|
|
MUNINN_GATE_URL=http://10.250.50.152:8090
|
|
|
|
# infra-ops-provisioned bearer (read+submit+control); SERVER-side only, never logged.
|
|
MUNINN_GATE_BEARER_KEY=__FILL_ON_SERVER__
|
|
|
|
# Shared staging root — RATIFIED value (not an example). Must exist, be a dir, and
|
|
# be writable by uid 1000; canonicalized at boot.
|
|
MIMIR_INBOX_STAGING_ROOT=/mnt/muninn-staging/mimir-inbox
|
|
|
|
# The RETRY WINDOW (not a tidiness setting): staged files are retained until the
|
|
# job is terminal + this many days. Shortening it shortens retryability
|
|
# (INV-MI-19 / worldtree-dev open-in-place). Do not tune down without telling
|
|
# mimir-dev.
|
|
MIMIR_INBOX_STAGING_RETENTION_DAYS=7
|
|
|
|
# Wing allowlist — name:description pairs, ";"-separated (first ":" splits
|
|
# name/description; a name is one path component; order = select order). Names
|
|
# MUST be upstream Worldtree library.wings ids. Boot-fails if empty.
|
|
MIMIR_INBOX_WINGS=fiction:Novels, novellas and short stories;main:General knowledge — non-fiction, manuals and technical reference
|
|
|
|
# Upload ceiling in MiB, enforced mid-stream.
|
|
MIMIR_INBOX_MAX_UPLOAD_MB=512
|
|
|
|
# Unclean-terminal float window (days) — how long a failed / complete_with_warnings
|
|
# job sorts above clean ones before settling into chronological order.
|
|
MIMIR_INBOX_FLOAT_WINDOW_DAYS=7
|