Repository navigation
docs(adr): decide what oracle is for — the off-host jobs (#94) - #252
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
ADR-0015 includes an ambiguous/incorrect repository path reference for the blackbox targets file that should be corrected for documentation accuracy.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR clarifies and formalizes oracle’s role in the HomeLab documentation by introducing ADR-0015 (“off-host jobs”) and correcting multiple docs/scripts that previously described oracle as having no/unclear purpose, despite already hosting the wiki and being probed by blackbox.
Changes:
- Add ADR-0015 documenting the decision to keep
oraclepowered and assign it the “small off-host jobs” role. - Update existing docs (
architecture.md,network.md,roadmap.md) to reflectoracle’s actual/current responsibilities and related follow-up gaps/issues. - Adjust
backup-firewall.shheader comments to align with the new declared role.
File summaries
| File | Description |
|---|---|
| scripts/backup-firewall.sh | Updates header commentary to reflect oracle’s declared “off-host jobs” role per ADR-0015. |
| docs/roadmap.md | Moves #94 to Done and updates roadmap context to reference ADR-0015; adds #251 gap tracking. |
| docs/network.md | Updates VLAN 99 host role/notes for oracle (wiki + off-host jobs) and adds supporting context. |
| docs/architecture.md | Corrects oracle’s host mapping entry to describe the wiki + off-host responsibilities and notes hand-run containers. |
| docs/adr/0015-give-oracle-the-off-host-jobs.md | New ADR establishing oracle as the host for small off-host jobs and documenting constraints/rejections. |
Review details
- Files reviewed: 5/5 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Overlaps with #253, which edits the same two rows for a different reason — the |
Review on #252: `prometheus/targets/blackbox.yaml` reads as a repo-root path and is not one — it also collides with the in-container /etc/prometheus/targets/blackbox.yaml. Linked to the file instead, the way add-a-host-override.md names it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
before answering made one of them impossible and the question much smaller:
`oracle` has run the Lemmiwinks wiki and its Postgres since 2025-11-12,
ADR-0011 already depends on that, and blackbox has been probing it twice on
`host: oracle` all along. Three places in this repository said it had no role
at the same time — the host table in architecture.md, the VLAN 99 notes in
network.md, and backup-firewall.sh's header ("It has no role (#94)").
check_docs.py reads that architecture row for the word "Alloy" and for a
`stacks/` path and never for what it claims the host does, which is how a wrong
sentence sat next to a checked one.
ADR-0015 decides it stays powered and takes the small off-host jobs — work
whose value is that it is not on the monitoring host. The wiki and the firewall
export copy it already has; the volume backup sets (#92) and the dead man's
switch watcher (#67) are added, decided here and built under their own issues.
A set is 867 MB of age ciphertext against 67 GB free, so it fits, and it is
already in the shape that makes a copy on a low-trust host acceptable.
Rejected: a second age recipient — back-up-the-age-key.md answers that gap with
an offline key and a second person, and a private key on `oracle` would put the
backups and the means to open them on one disk; ADR-0007's second stack and
ADR-0008's sensitive tier, on the hardware; bringing `wlp22s0` up to give the
watcher an independent notification path, which dual-homes a VLAN 99 host onto
an untrusted segment; and switching the machine off.
Ratifying the wiki names a gap it does not close — hand-run containers, an
anonymous content volume, no backup of either volume, /etc/wiki/.db-secret at
mode 664 — filed as #251.
Every figure in the ADR was measured on the host on 2026-09-03 rather than
quoted from the inventory that was wrong about this machine once already.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Review on #252: `prometheus/targets/blackbox.yaml` reads as a repo-root path and is not one — it also collides with the in-container /etc/prometheus/targets/blackbox.yaml. Linked to the file instead, the way add-a-host-override.md names it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
3dd224f to
195bbfd
Compare
Closes #94.
oraclewas checked before the question was answered, and the check changed thequestion. It has run the Lemmiwinks wiki and its Postgres since 2025-11-12 —
ADR-0011
names the host and makes it the middle documentation tier, and
prometheus/targets/blackbox.yamlhas been probing it twice onhost: oraclethe whole time. Meanwhile three places said it had no role: the host table in
architecture.md, the VLAN 99 notes innetwork.md, andbackup-firewall.sh'sheader ("It has no role (#94)").
check_docs.pyreads that architecture row forthe word "Alloy" and for a
stacks/path and never for what it claims the hostdoes, which is how a wrong sentence sat next to a checked one for months.
The decision — ADR-0015
oraclestays powered and takes the small off-host jobs: work whose whole valueis that it is not running on the monitoring host.
Both new jobs are decided here and built under their own issues; nothing is
implemented by this PR.
The volume sets fit and are already in the right shape to leave: a set is 867 MB
of five
.tar.gz.agearchives,KEEPis 7, so 6.1 GB against 67 GB free, andbackup-volumes.shencrypts to the.sops.yamlrecipient before anythingtouches the disk — so the copy on
oraclehas the property the firewall copyhas, ciphertext with no key on the far side.
Rejected, with reasons in the ADR: a second age recipient (the runbook
answers that gap with an offline key and a second person, and a private key
there would put the backups and the means to open them on one disk); ADR-0007's
second stack and ADR-0008's sensitive tier (two cores, 4 GB, 5400 rpm);
bringing
wlp22s0up to give the watcher an independent notification path,which is tempting and dual-homes a VLAN 99 host onto an untrusted segment; and
switching it off, which was never really on offer.
Honest limits, stated in the ADR
a shelf, a switch, a mains and a roof.
complaint — and cannot report a mains cut, because the switch between the two
laptops has no battery (Rack the shelf switch in U4 — buy it with the UPS pack #110). Its silence during a power cut is expected
behaviour, and whoever writes that runbook should say so.
Also here
architecture.md,network.mdandbackup-firewall.sh'sheader, which all described a machine with no role.
(hand-run containers, anonymous content volume, nothing backing up either
volume,
/etc/wiki/.db-secretat mode 664).Every figure in the ADR was measured on the host on 2026-09-03, not quoted from
the inventory that was wrong about this machine once already.
make validatepasses.
🤖 Generated with Claude Code