From ca1d89fca214c67eccc800ef2c47c19c99838386 Mon Sep 17 00:00:00 2001 From: Garrett Allen <98648590+Gerrrt@users.noreply.github.com> Date: Thu, 15 Oct 2026 22:07:40 +0000 Subject: [PATCH 1/2] docs(rack): put the KVM on a shelf, decide the KVM and PDU maps, retire two bought rows The MT-VIKI 801UK-L is a half-U device: its ears take two of a unit's three holes and sit about 8 mm off centre either way, so it goes on a third 1U vented shelf at U23. hardware.md gains a Console and power maps section: KVM ports in the runbook's power-up order, PDU outlets bottom of the rack up with the bricks together at the far end. The keyboard drawer and ifrit's Tiny mount, mounted 2026-10-15, leave Everything still to buy; twelve rows become ten and README's count follows. The move runbook cables the KVM and the PDU by the maps instead of asking for them at the rack. Refs #919. Co-Authored-By: Claude Fable 5.1 --- README.md | 2 +- docs/changelog.md | 28 ++++++++++++++ docs/hardware.md | 50 +++++++++++++++++++++++-- docs/roadmap.md | 7 ++-- docs/runbooks/move-into-the-32u-rack.md | 22 +++++++---- 5 files changed, 94 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 9571ddcd..7266d349 100644 --- a/README.md +++ b/README.md @@ -399,7 +399,7 @@ is [`docs/changelog.md`](docs/changelog.md), dated and never rewritten. **Every purchase still outstanding is in one place**, the roadmap's [*Everything still to buy*](docs/roadmap.md#everything-still-to-buy): -12 items now, 0 later, and a rule that nothing joins them without a +10 items now, 0 later, and a rule that nothing joins them without a decision. This sentence used to carry the list itself, name three purchases coupled to the UPS work and omit the tier's host entirely, which is how one ProDesk came to be bought for two jobs. It names no current item for the diff --git a/docs/changelog.md b/docs/changelog.md index d0356e12..3f3c6ee8 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -17,6 +17,34 @@ roadmap as it read that day, and the *Done* entries keep the shape they had there. `check_docs.py` does not check this file, for the reason its module docstring gives: it is a record, not a claim about now. +## 2026-10-15 + +- **The KVM goes on a shelf, and the console and power maps are decided** + ([#919](https://github.com/Gerrrt/HomeLab/issues/919)). The screen, the + CRS326, `ifrit`'s Tiny mount, `trinity`'s tray and the keyboard drawer are + mounted. The drawer and the Tiny mount leave *Everything still to buy* by + its rule, so twelve rows become ten. Both maps are in + [`hardware.md`](hardware.md#console-and-power-maps). + - **The KVM's ears leave a gap.** The MT-VIKI 801UK-L is sold as a half-U + device, so its ears take two adjacent holes of a unit's three. The holes + are not evenly spaced, so any two adjacent ones put the chassis about + 8 mm off centre. No two-hole ear can centre it. It goes on a third 1U + vented shelf at U23 instead, which takes all three holes and needs no + drilling. Drilled full-height ears and a full-1U replacement KVM were + weighed and declined: a drill for the one, a new switch and eight cable + sets for a cosmetic offset for the other. + - **KVM ports count in the power-up order** of the move runbook's §7, + since the switch selects port 1 at power-on and `morpheus` is the first + host brought up from the console: `morpheus`, `trinity`, `Saruman`, + `smaug` if its rear VGA is used, then `ifrit`. `smaug` is new to the + list: racked, it loses the monitor beside it. + - **PDU outlets follow the rack from the bottom up**, the external bricks + together at the far end where they only block each other. The number is + a label only; the rule is that a cord's outlet tells you its device. One + check joins the runbook: the PDU's cord must be on the UPS's main outlet + group, which no document records. + - The switch's ports are not reordered: the captured map stands. + ## 2026-10-14 - **`ifrit` arrived, and a VGA card for it was ordered** diff --git a/docs/hardware.md b/docs/hardware.md index dd6498d2..69d19532 100644 --- a/docs/hardware.md +++ b/docs/hardware.md @@ -108,13 +108,13 @@ CRS326 with them. | U | Device | Why here | | --- | --- | --- | | U25–U32 | ViewSonic N1700W on an 8U VESA rack mount | The very top. The console's height frees the middle of the rack for air between machines. Light, so high is fine | -| U24 | 1U sliding keyboard and mouse shelf | Directly under the screen, about 112 cm up | -| U23 | MT-VIKI 8-port KVM | Beside the console, so its console cables are short. It was at U6. Its lead sets reach the DL360 20 units down, checked 2026-10-12 | +| U24 | 1U sliding keyboard and mouse shelf | Directly under the screen, about 112 cm up. Mounted 2026-10-15 | +| U23 | MT-VIKI 8-port KVM, on a 1U vented shelf | Beside the console, so its console cables are short. It was at U6. Its lead sets reach the DL360 20 units down, checked 2026-10-12. The shelf is because the KVM is sold as a half-U device: its ears take two of a unit's three holes, and the holes are not evenly spaced, so it sits about 8 mm off centre whichever pair is used. The shelf takes all three. Decided 2026-10-15 | | U22 | Vented blank, or left open | Air over the CRS326. It is passive, and two S+RJ10s side by side need "additional cooling" ([MikroTik's guidance](https://help.mikrotik.com/docs/spaces/ROS/pages/240156916/S+RJ10+general+guidance)) if the 2.5G WAN work goes ahead | | U21 | MikroTik CRS326-24G-2S+RM (`neo`) | Replaces the MokerLink (#444). SFP+ 1–2 are the 2.5G path, if built. Racked 2026-10-12 | | U20 | 1U horizontal cable manager | Strain relief between switch and panel. A tugged hand-crimped WAN plug was the slow internet #914 traced (#923) | | U19 | Jadol 24-port patch panel | Next to the switch, so its patch cords stay short | -| U18 | 1U mount for a Lenovo ThinkCentre Tiny: `ifrit` | The offensive range (ADR-0007, ADR-0017), beside the other two 1-litre boxes. A Tiny is not a ProDesk Mini, so buy a mount made for the Tiny and check it fits before reusing `morpheus`'s tray design | +| U18 | 1U mount for a Lenovo ThinkCentre Tiny: `ifrit` | The offensive range (ADR-0007, ADR-0017), beside the other two 1-litre boxes. A Tiny is not a ProDesk Mini, so its mount is one made for the Tiny, not `morpheus`'s tray design. Mounted 2026-10-15 | | U17 | *gap* | Keeps the range off the sensitive tier's box | | U16 | ProDesk Mini tray: `trinity` | Off the shelf. Same tray as `morpheus`. Its 2 TB USB photo disk sits on the same tray | | U15 | ProDesk Mini tray: `morpheus` | | @@ -133,6 +133,50 @@ there is no headroom for another server. If the rack runs out, the 1U console drawer below gives back eight units, or nine with a model that replaces the KVM too. +#### Console and power maps + +Decided 2026-10-15, cabled in the #919 window. Neither map existed before: +the move runbook asked for the KVM's to be written down at the rack. Both +are useful only to someone already standing at it, the same reach as the +cable colours [`security.md`](security.md) publishes. + +**The KVM counts in the power-up order** of +[`move-into-the-32u-rack.md`](runbooks/move-into-the-32u-rack.md) §7. The +switch selects port 1 at power-on, and `morpheus` is the first host brought +up from the console. + +| KVM port | Host | Why | +| --- | --- | --- | +| 1 | `morpheus`, U15 | First up; the console the house's DHCP depends on | +| 2 | `trinity`, U16 | Second up; where the passphrase prompt appears if the TPM does not unseal | +| 3 | `Saruman`, U3 | Third up; the iLO is the usual path and the KVM the fallback | +| 4 | `smaug`, U5–U9 | Racked, it loses the monitor beside it. Only if the TS150's rear VGA is used; check before cabling | +| 5 | `ifrit`, U18 | Off until the playground build | +| 6–8 | spare | | + +**The PDU follows the rack from the bottom up, bricks at the far end.** It +is an unswitched strip, so the number is only a label, and the rule is that +a cord's outlet tells you its device. External bricks block their +neighbours, so they sit together at the high-numbered end. + +| Outlet | Device | +| --- | --- | +| 1 | DL360, supply 1 | +| 2 | DL360, supply 2 if fitted, else spare | +| 3 | `smaug` | +| 4 | CRS326 | +| 5 | spare | +| 6 | `morpheus`'s brick | +| 7 | `trinity`'s brick | +| 8 | `ifrit`'s brick | +| 9 | The N1700W's 12 V brick | +| 10 | KVM | + +The TP-Link stays on its UPS outlet. **Which UPS outlet the PDU uses is not +recorded.** The Smart-UPS X has outlet groups that can be switched +separately, so the PDU's cord must be on the main group. Read it at the rack +in the window and write it here. + **`smaug` on its side, measured 2026-10-12.** Upright, the TS150 is 15" tall, 7" wide and 17" deep, and weighs about 20 lb with its drives. On its side the 7" becomes its height: 4U is exactly 7.00", so with a shelf tray diff --git a/docs/roadmap.md b/docs/roadmap.md index 36abbabc..6706da76 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -347,14 +347,13 @@ ADR set; its last two rows are what it still needs. On 2026-10-13 the move into the 32U rack ([#919](https://github.com/Gerrrt/HomeLab/issues/919)) put its parts here, which had been listed only in its runbook's §0.1, and `Saruman`'s memory joined them. Already on hand, so not listed: the frame, -the VESA mount, `trinity`'s ProDesk tray and the velcro. +the VESA mount, `trinity`'s ProDesk tray and the velcro, and since +2026-10-15 the keyboard drawer and `ifrit`'s Tiny mount, both mounted. | Item | For | Decided by | When it is needed | | --- | --- | --- | --- | | Four-post shelf, adjustable to 29", at least 17" deep, rated for 50 lb or more. StarTech ADJSHELFHDV fits: 19.5–38", 27.5" tray, 330 lb | `smaug` on its side, U5–U9 | [`hardware.md`](hardware.md#planned-a-32u-rack), 2026-10-12 | Before the #919 window | -| 2 × 1U four-post vented shelf, adjustable to 29" | `prometheus` U10, `oracle` U12 | [`hardware.md`](hardware.md#planned-a-32u-rack) | Before the #919 window | -| 1U sliding keyboard drawer, front-rail mount | The console, U24 | [`hardware.md`](hardware.md#planned-a-32u-rack) | Before the #919 window | -| 1U mount made for a ThinkCentre Tiny, holding its brick | `ifrit`, U18 | [`hardware.md`](hardware.md#planned-a-32u-rack) | Before the #919 window | +| 3 × 1U four-post vented shelf, adjustable to 29" | `prometheus` U10, `oracle` U12, and the KVM at U23 | [`hardware.md`](hardware.md#planned-a-32u-rack); the third on 2026-10-15 | Before the #919 window | | 1U horizontal cable manager | U20, between switch and panel | [`hardware.md`](hardware.md#planned-a-32u-rack) | Before the #919 window | | 1U vented blank | U22, the air gap over the CRS326 | [`hardware.md`](hardware.md#planned-a-32u-rack) | Before the #919 window | | One factory-made Cat6 patch cable, long enough for the run | The XB7's striped 2.5G port to `morpheus`'s `em0`, replacing the hand-crimped patch | [#923](https://github.com/Gerrrt/HomeLab/issues/923) | Now: it should not wait for the move | diff --git a/docs/runbooks/move-into-the-32u-rack.md b/docs/runbooks/move-into-the-32u-rack.md index 3812b1cf..ce48d30c 100644 --- a/docs/runbooks/move-into-the-32u-rack.md +++ b/docs/runbooks/move-into-the-32u-rack.md @@ -77,10 +77,10 @@ ones not yet on hand are also in the roadmap's | --- | --- | --- | | 32U four-post open frame, adjustable depth to at least 30" | 1 | The frame. Bought 2026-10-09, built 2026-10-11 at 29" | | VESA 100 × 100 rack mount for a 17–19" screen (sold as 4U) | 1 | The ViewSonic N1700W, U25–U32. On hand, 2026-10-13 | -| 1U sliding keyboard drawer, front-rail mount | 1 | U24 | -| 1U mount for a Lenovo ThinkCentre Tiny, holding its power brick | 1 | `ifrit`, U18 | +| 1U sliding keyboard drawer, front-rail mount | 1 | U24. On hand and mounted, 2026-10-15 | +| 1U mount for a Lenovo ThinkCentre Tiny, holding its power brick | 1 | `ifrit`, U18. On hand and mounted, 2026-10-15 | | 1U ProDesk Mini tray (the same one as `morpheus`'s) | 1 | `trinity`, U16. On hand, 2026-10-13 | -| 1U vented four-post shelf, square-hole, adjustable to 29" | 2 | `prometheus` U10 and `oracle` U12 | +| 1U vented four-post shelf, square-hole, adjustable to 29" | 3 | `prometheus` U10, `oracle` U12 and the KVM at U23, whose own ears are half-height ([`hardware.md`](../hardware.md#planned-a-32u-rack)) | | Four-post shelf, adjustable to 29", at least 17" deep, rated for 50 lb or more | 1 | `smaug` on its side, U5–U9 (about 20 lb) | | 1U horizontal cable manager | 1 | U20 | | 1U vented blank | 1 | U22, the air gap over the CRS326 | @@ -361,7 +361,7 @@ units (§1.2), then the next one up. | 12 | U20 | Cable manager | | | 13 | U21 | CRS326 | Already racked on 2026-10-12. [`swap-the-switch.md`](swap-the-switch.md) Phase 2, step 2 is done; carry on from step 3 | | 14 | U22 | Vented blank | The air gap over the passive switch | -| 15 | U23 | KVM | | +| 15 | U23 | KVM, on its vented shelf | Its half-height ears take two of a unit's three holes; the shelf takes all three | | 16 | U24 | Keyboard drawer | Front rails only | | 17 | U25–U32 | N1700W on its VESA mount | The bracket bolts to 4U. The screen in front of it covers 8U | @@ -390,9 +390,17 @@ units (§1.2), then the next one up. it back in before `trinity` powers up in §7: it holds Immich's originals. - **The XB7 to `morpheus`'s `em0`:** a factory cable, seated until the latch clicks, in the XB7's striped 2.5 Gbit port. -- KVM: one lead set each to `morpheus`, `Saruman`, `trinity` and `ifrit`. - Write down which KVM port is which; the repository has no map of it. The - lead sets reach from U23 down to `Saruman` at U3, checked 2026-10-12. +- KVM: one lead set each, **by the port map in + [`hardware.md`](../hardware.md#console-and-power-maps)**: `morpheus` on 1, + `trinity` on 2, `Saruman` on 3, `smaug` on 4 if the TS150's rear VGA is + used, `ifrit` on 5. The lead sets reach from U23 down to `Saruman` at U3, + checked 2026-10-12. +- Power cords **by the PDU outlet map** in the same section: the DL360's + supplies on 1 and 2, then up the rack, the external bricks together on 6–9 + and the KVM on 10. Check that the PDU's own cord is on the UPS's main + outlet group, not a switched one: the Smart-UPS X can switch its groups + separately, and no document records which outlet the PDU uses. Write it in + `hardware.md` in §8. --- From 44527613ab8dd49909c5a8b3e7654d3f50bb7ced Mon Sep 17 00:00:00 2001 From: Garrett Allen <98648590+Gerrrt@users.noreply.github.com> Date: Thu, 15 Oct 2026 23:30:56 +0000 Subject: [PATCH 2/2] docs(rack): put the laptops' chargers on the UPS and read the outlet groups, not assume a main one MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Review on #1198: the PDU map omitted both laptops' chargers, which §1.7 counts, and asked for the PDU to be on a UPS "main group" that may not exist. The chargers go on the UPS's own outlets beside the TP-Link in either case, so the map holds whether the DL360 has one supply or two, and §1.7's count becomes 8–9 of 10. The check now reads which outlet group feeds the PDU, the TP-Link and the chargers, and compares each group's switching settings with ADR-0049 and §7's power-up order. Refs #919. Co-Authored-By: Claude Fable 5.1 --- docs/changelog.md | 9 ++++++--- docs/hardware.md | 19 +++++++++++++++---- docs/runbooks/move-into-the-32u-rack.md | 23 +++++++++++++++-------- 3 files changed, 36 insertions(+), 15 deletions(-) diff --git a/docs/changelog.md b/docs/changelog.md index 3f3c6ee8..c005cc57 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -40,9 +40,12 @@ docstring gives: it is a record, not a claim about now. list: racked, it loses the monitor beside it. - **PDU outlets follow the rack from the bottom up**, the external bricks together at the far end where they only block each other. The number is - a label only; the rule is that a cord's outlet tells you its device. One - check joins the runbook: the PDU's cord must be on the UPS's main outlet - group, which no document records. + a label only; the rule is that a cord's outlet tells you its device. Both + laptops' chargers go on the UPS's own outlets beside the TP-Link, which + keeps the map the same whether the DL360 has one supply or two. One + check joins the runbook: which UPS outlet group feeds the PDU, and + whether that group's switching settings fit ADR-0049 and the power-up + order. No document records the groups. - The switch's ports are not reordered: the captured map stands. ## 2026-10-14 diff --git a/docs/hardware.md b/docs/hardware.md index 69d19532..95e91a75 100644 --- a/docs/hardware.md +++ b/docs/hardware.md @@ -172,10 +172,21 @@ neighbours, so they sit together at the high-numbered end. | 9 | The N1700W's 12 V brick | | 10 | KVM | -The TP-Link stays on its UPS outlet. **Which UPS outlet the PDU uses is not -recorded.** The Smart-UPS X has outlet groups that can be switched -separately, so the PDU's cord must be on the main group. Read it at the rack -in the window and write it here. +**Both laptops' chargers go on the UPS's own outlets, beside the TP-Link +that feeds them**, not on the PDU. The runbook's §1.7 counts them as PDU +loads and says to move them to the UPS if the count reaches eleven; with +two DL360 supplies it does, and the laptops carry their own cells, so they +need the PDU's outlets least. Putting them there in either case keeps the +map the same whatever the DL360 turns out to have, and outlet 5 stays +spare. + +**Which UPS outlet group feeds the PDU is not recorded.** The Smart-UPS X's +outlets are in groups the card can switch and sequence separately. Read +which group the PDU's cord is on, check that group's turn-off and turn-on +settings fit the shutdown in +[ADR-0049](adr/0049-shut-down-on-the-ups-from-a-nut-server-on-the-firewall.md) +and the power-up order in the runbook's §7, and write both here. The same +goes for the group the TP-Link and the chargers are on. **`smaug` on its side, measured 2026-10-12.** Upright, the TS150 is 15" tall, 7" wide and 17" deep, and weighs about 20 lb with its drives. On its diff --git a/docs/runbooks/move-into-the-32u-rack.md b/docs/runbooks/move-into-the-32u-rack.md index ce48d30c..8558ec45 100644 --- a/docs/runbooks/move-into-the-32u-rack.md +++ b/docs/runbooks/move-into-the-32u-rack.md @@ -238,11 +238,14 @@ The PDU has ten outlets. Write down what will plug into it: | CRS326 (DC adapter) | 1 | | N1700W (12 V brick) | 1 | | `smaug` (racked at U5–U9; the long cord is retired) | 1 | -| Both laptops' chargers | 2 | +| Both laptops' chargers | 0: on the UPS's own outlets, beside the TP-Link | -That is **9–10 of 10**. If it comes to 11, put the laptops' chargers on the -UPS's own outlets beside the TP-Link: the laptops carry their own batteries, -so they need the outlets least. Do not daisy-chain a power strip off the PDU. +That is **8–9 of 10**, by the outlet map in +[`hardware.md`](../hardware.md#console-and-power-maps). The laptops' +chargers go on the UPS's own outlets in either case: with two DL360 +supplies the PDU would be at eleven, and the laptops carry their own +batteries, so they need its outlets least. Do not daisy-chain a power strip +off the PDU. --- @@ -397,10 +400,14 @@ units (§1.2), then the next one up. checked 2026-10-12. - Power cords **by the PDU outlet map** in the same section: the DL360's supplies on 1 and 2, then up the rack, the external bricks together on 6–9 - and the KVM on 10. Check that the PDU's own cord is on the UPS's main - outlet group, not a switched one: the Smart-UPS X can switch its groups - separately, and no document records which outlet the PDU uses. Write it in - `hardware.md` in §8. + and the KVM on 10. Both laptops' chargers go on the UPS's own outlets + beside the TP-Link, not on the PDU (§1.7). +- **Read which UPS outlet group the PDU's cord is on**, and which the + TP-Link and the chargers are on. The Smart-UPS X's outlets are in groups + the card can switch and sequence separately, and no document records + which group feeds what. Check each group's turn-off and turn-on settings + against ADR-0049's shutdown and §7's power-up order, and write the groups + into `hardware.md` in §8. ---