37 lines
1.6 KiB
Markdown
37 lines
1.6 KiB
Markdown
# 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.
|