micro1 and monitor-02 are IceWhale ZimaBoard 832s on a shelf. They should be drawn as the real boards.
The StarTech's RPDU and ZimaBoard shelf hang on the rear posts but face the front. The rack page assumed rear-mounted meant rear-facing, so it drew them the wrong way round.
What changes
Posts and facing are separate fields
Each item has Mounted on (front posts, rear posts, or both for full depth) and Ports face (front or rear). Both are new fields; facing defaults to front.
Existing items, including the RPDU and the shelf on production, now read correctly with no data change.
Three views
Front: the front posts.
Rear posts: gear on the rear posts, seen from the front, i.e. what sits behind the front gear. This is where the RPDU and the ZimaBoards show port-side out.
Rear: the rack from behind.
An item seen from the side it doesn't face shows its back.
Each view button shows how many items it holds.
Shelves drawn to scale
A shelf is drawn as a true-scale shelf (a 19" panel is 482.6 mm), with its contents left to right by a new Position on shelf field.
Each item stands on the tray with a name tag below it and links to its device page.
Items without a drawing are labelled boxes.
IceWhale ZimaBoard 832
Traced from IceWhale's own labelled photo of the port end, from their ZimaDocs repo (hardware-interface-introduction.webp), at 81.4 mm wide.
Left to right: Mini-DisplayPort 1.2, two GbE RJ45 jacks over two USB 3.0 ports, then the DC 12V 5.5x2.5mm jack. Each RJ45 has a link LED and an activity LED.
Drawn on the gunmetal case, with the gold PCB edge and the black polycarbonate base.
Live data:
Each RJ45 link light follows one of the host's physical NICs, in name order: first NIC on the left jack.
The amber base glow follows the host's power status.
The tooltip lists the specs (N3450, 8GB LPDDR4, 32GB eMMC, 6W) and each NIC's state.
Schema: new cutsheet_items columns facing and slot, added on first use.
After deploy
On production, set Front drawing: IceWhale ZimaBoard 832 on micro1 and monitor-02, and Position on shelf 1 and 2.
Testing
Automated: 370 tests pass (5 new):
all three views, with a rear-post item facing front, one facing rear, and a full-depth server
view counts
shelf contents ordered by position, with each host's physical NICs
facing and slot validation, including that a position needs a shelf
Lint: flake8 is clean, ESLint reports 0 errors, and no em or en dashes remain.
Playwright in the preview, with micro1's second NIC down:
The "Rear posts" view shows the RPDU and the shelf with both ZimaBoards.
micro1's right jack is dark.
The tooltips are correct.
Clicking a board opens its device page.
No JS errors.
Merging: this branch and #29 (Pro Max faceplates) both add entries to the drawing list. Whichever merges second needs a small rebase, which I'll do.
## Why
micro1 and monitor-02 are IceWhale ZimaBoard 832s on a shelf. They should be drawn as the real boards.
The StarTech's RPDU and ZimaBoard shelf hang on the **rear posts** but **face the front**. The rack page assumed rear-mounted meant rear-facing, so it drew them the wrong way round.
## What changes
**Posts and facing are separate fields**
- Each item has **Mounted on** (front posts, rear posts, or both for full depth) and **Ports face** (front or rear). Both are new fields; facing defaults to front.
- Existing items, including the RPDU and the shelf on production, now read correctly with no data change.
**Three views**
- **Front:** the front posts.
- **Rear posts:** gear on the rear posts, seen from the front, i.e. what sits behind the front gear. This is where the RPDU and the ZimaBoards show port-side out.
- **Rear:** the rack from behind.
- An item seen from the side it doesn't face shows its back.
- Each view button shows how many items it holds.
**Shelves drawn to scale**
- A shelf is drawn as a true-scale shelf (a 19" panel is 482.6 mm), with its contents left to right by a new **Position on shelf** field.
- Each item stands on the tray with a name tag below it and links to its device page.
- Items without a drawing are labelled boxes.
**IceWhale ZimaBoard 832**
- Traced from IceWhale's own labelled photo of the port end, from their ZimaDocs repo (`hardware-interface-introduction.webp`), at 81.4 mm wide.
- Left to right: Mini-DisplayPort 1.2, two GbE RJ45 jacks over two USB 3.0 ports, then the DC 12V 5.5x2.5mm jack. Each RJ45 has a link LED and an activity LED.
- Drawn on the gunmetal case, with the gold PCB edge and the black polycarbonate base.
- Live data:
- Each RJ45 link light follows one of the host's physical NICs, in name order: first NIC on the left jack.
- The amber base glow follows the host's power status.
- The tooltip lists the specs (N3450, 8GB LPDDR4, 32GB eMMC, 6W) and each NIC's state.
**Schema:** new `cutsheet_items` columns `facing` and `slot`, added on first use.
## After deploy
On production, set **Front drawing: IceWhale ZimaBoard 832** on micro1 and monitor-02, and **Position on shelf** 1 and 2.
## Testing
- **Automated:** 370 tests pass (5 new):
- all three views, with a rear-post item facing front, one facing rear, and a full-depth server
- view counts
- shelf contents ordered by position, with each host's physical NICs
- facing and slot validation, including that a position needs a shelf
- **Lint:** flake8 is clean, ESLint reports 0 errors, and no em or en dashes remain.
- **Playwright** in the preview, with micro1's second NIC down:
- The "Rear posts" view shows the RPDU and the shelf with both ZimaBoards.
- micro1's right jack is dark.
- The tooltips are correct.
- Clicking a board opens its device page.
- No JS errors.
**Merging:** this branch and #29 (Pro Max faceplates) both add entries to the drawing list. Whichever merges second needs a small rebase, which I'll do.

IceWhale's reference photo, for comparison:

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Gear on the rear posts usually still faces the front (the StarTech's RPDU
and ZimaBoard shelf), so "which posts" and "which way the ports face" are
now separate fields (mount, facing). The page has three views: Front (front
posts), Rear posts (rear-post gear seen from the front, i.e. what is behind
the front gear) and Rear (from behind). An item seen from the side it
doesn't face shows its back. Facing defaults to front, so existing items
keep their meaning.
Shelves are drawn at true scale with their contents ordered by a new
"Position on shelf". The IceWhale ZimaBoard 832 is traced from IceWhale's
labelled photo of its port end (ZimaDocs): Mini-DP, two RJ45-over-USB 3.0
stacks with link/activity LEDs, DC jack, gunmetal case, gold PCB edge and
black base. Its RJ45 link lights follow the host's physical NICs and the
status glow follows the host.
New cutsheet_items columns facing and slot, added on first use.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From the rack photo, each ZimaBoard has a single-port ConnectX-3 lying flat
in its side PCIe slot with a DAC attached. Front drawing "ZimaBoard 832 +
ConnectX-3" draws the card beside the board at scale: PCB at board height,
heatsink, SFP+ cage with the DAC and pull tab, and a Gandalf link mark for
the card's interface.
The jacks were lit in NIC name order, which put the ConnectX-3 (enp1s0, PCI
bus 1) on the left RJ45. The onboard ports are enp2s0 (left) and enp3s0
(right); the PCIe card is enp1s0.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
I drew these from the rack photo. Each ZimaBoard has a single-port ConnectX-3 lying flat in its side PCIe slot, with a DAC attached. The new Front drawing ZimaBoard 832 + ConnectX-3 draws the card beside the board at scale:
the PCB at board height, with the heatsink on top
the SFP+ cage on the board side, with the DAC plug and its pull tab hanging down
a round dot, which is Gandalf's link mark for the card's interface (enp1s0), not an LED on the card
Fix: which interface lights which jack. The jacks were lit in interface name order, which put the ConnectX-3 (enp1s0, on PCI bus 1) on the left RJ45. On production, micro1 and monitor-02 report:
enp1s0: the PCIe card
enp2s0: onboard port, drawn on the left jack
enp3s0: onboard port, drawn on the right jack
micro1's right jack is dark because enp3s0 is down there.
The preview below uses production's interface set:
## ConnectX-3 cards added
I drew these from the rack photo. Each ZimaBoard has a single-port ConnectX-3 lying flat in its side PCIe slot, with a DAC attached. The new Front drawing **ZimaBoard 832 + ConnectX-3** draws the card beside the board at scale:
- the PCB at board height, with the heatsink on top
- the SFP+ cage on the board side, with the DAC plug and its pull tab hanging down
- a round dot, which is Gandalf's link mark for the card's interface (`enp1s0`), not an LED on the card
**Fix: which interface lights which jack.** The jacks were lit in interface name order, which put the ConnectX-3 (`enp1s0`, on PCI bus 1) on the left RJ45. On production, micro1 and monitor-02 report:
- `enp1s0`: the PCIe card
- `enp2s0`: onboard port, drawn on the left jack
- `enp3s0`: onboard port, drawn on the right jack
micro1's right jack is dark because `enp3s0` is down there.
The preview below uses production's interface set:

Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Why
micro1 and monitor-02 are IceWhale ZimaBoard 832s on a shelf. They should be drawn as the real boards.
The StarTech's RPDU and ZimaBoard shelf hang on the rear posts but face the front. The rack page assumed rear-mounted meant rear-facing, so it drew them the wrong way round.
What changes
Posts and facing are separate fields
Three views
Shelves drawn to scale
IceWhale ZimaBoard 832
hardware-interface-introduction.webp), at 81.4 mm wide.Schema: new
cutsheet_itemscolumnsfacingandslot, added on first use.After deploy
On production, set Front drawing: IceWhale ZimaBoard 832 on micro1 and monitor-02, and Position on shelf 1 and 2.
Testing
Merging: this branch and #29 (Pro Max faceplates) both add entries to the drawing list. Whichever merges second needs a small rebase, which I'll do.
IceWhale's reference photo, for comparison:
🤖 Generated with Claude Code
ConnectX-3 cards added
I drew these from the rack photo. Each ZimaBoard has a single-port ConnectX-3 lying flat in its side PCIe slot, with a DAC attached. The new Front drawing ZimaBoard 832 + ConnectX-3 draws the card beside the board at scale:
enp1s0), not an LED on the cardFix: which interface lights which jack. The jacks were lit in interface name order, which put the ConnectX-3 (
enp1s0, on PCI bus 1) on the left RJ45. On production, micro1 and monitor-02 report:enp1s0: the PCIe cardenp2s0: onboard port, drawn on the left jackenp3s0: onboard port, drawn on the right jackmicro1's right jack is dark because
enp3s0is down there.The preview below uses production's interface set: