initial commit

This commit is contained in:
2026-05-23 16:41:20 -04:00
commit 8fde024281
15 changed files with 803 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
# ADR-0002: Daemon placement and remote target configuration
**Status:** Accepted — 2026-05-23
## Context
The inference box is an M1 Pro MacBook — a laptop, not always-on infrastructure.
The rest of steveternet runs on the homelab and is deployed/managed through
Komodo. We do not want bespoke job-controller logic living on the Mac.
## Decision
`foreman` runs on the homelab (e.g. orgrimmar), containerized and deployed via
Komodo like everything else. It is **given** its Ollama target as a configurable
base URL (default: the Mac's Tailscale address) and reaches it over the network.
The Mac runs Ollama and nothing `foreman`-specific. It stays a dumb appliance.
## Consequences
- Ops consistency: foreman is a normal Komodo-managed container.
- The target URL is config, never hardcoded — swapping the Mac for another
backend is a config edit (within the one-target-per-daemon rule of ADR-0001).
- The Mac is a laptop and may sleep or change networks. The daemon must treat an
unreachable target as a transient, recoverable condition (see ADR-0007 for the
model poller's degraded mode and ADR-0004 for job retry semantics), never as a
fatal error. Operationally: `caffeinate`/`pmset` keeps the Mac awake; Tailscale
keeps its address stable.
- Network is now the trust boundary; Ollama has no auth of its own (see ADR-0010).
## Alternatives considered
- **Co-locate foreman on the Mac.** Rejected: contradicts the stated preference to
keep controller logic off the laptop, and complicates Komodo-based deployment.
Note that "given a target URL" keeps this reversible — co-location would just be
pointing the URL at localhost.