Files
foreman/.env.example
T
steve 7cd7eaff8b
CI / Tidy (push) Successful in 9m42s
CI / Build & Test (push) Successful in 10m28s
CI / Publish Docker Image (push) Successful in 21s
feat: add FOREMAN_KEEP_ALIVE config for worker model residency
Allow configuring how long the worker model stays resident on the Ollama
target after a request via FOREMAN_KEEP_ALIVE env var. Accepts Ollama
duration strings ("-1" forever, "0" unload, "15m", "1h", etc). Defaults
to "-1" (pin forever). The embedder warm-up is unaffected and always
uses keep_alive=-1.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 21:29:37 -04:00

49 lines
1.3 KiB
Bash

# === foreman daemon configuration ===
# Listen address (default: :8080)
FOREMAN_ADDR=:8080
# Ollama target URL (required — the Mac's Tailscale address)
FOREMAN_OLLAMA_URL=http://100.x.x.x:11434
# Outbound bearer token for Ollama target (optional)
FOREMAN_OLLAMA_TOKEN=
# Inbound bearer token foreman requires of its callers (optional)
FOREMAN_TOKEN=change-me-to-a-secret
# === Model configuration ===
# Always-resident embedding model (pinned in slot 1)
FOREMAN_EMBED_MODEL=nomic-embed-text
# How long the worker model stays resident on the target after a request.
# Accepts Ollama duration strings: "-1" (forever/pin), "0" (unload immediately),
# "15m", "1h", "3600" (seconds), etc.
# Does NOT affect the embedder, which is always pinned with keep_alive=-1.
# Default: -1 (pin forever — best for a dedicated box)
FOREMAN_KEEP_ALIVE=-1
# === Persistence ===
# SQLite database path (default: foreman.db)
FOREMAN_DB_PATH=/data/foreman.db
# === Polling ===
# Model polling interval (default: 30s)
FOREMAN_POLL_INTERVAL=30s
# === Webhooks ===
# Webhook HMAC signing secret (optional — signs X-Foreman-Signature header)
FOREMAN_WEBHOOK_SECRET=
# === Job lifecycle ===
# Max retry attempts for failed jobs (default: 3)
FOREMAN_MAX_ATTEMPTS=3
# TTL for completed/failed jobs before pruning (default: 24h)
FOREMAN_JOB_TTL=24h