Skip to content

Buy and build the NAS, smaug, on CasaBonita (ADR-0016, ADR-0040) #413

Description

@Gerrrt

The NAS that ADR-0008 named as the second of "two purchases where the plan
originally assumed zero", and that ADR-0016 placed and addressed. #95 closed on
2026-09-04 when ADR-0016 answered its four questions, and the purchase and the
build lost their tracker that day — the same shape #102 had, which is how one
ProDesk came to be bought for two jobs (ADR-0034). This is the tracker.

Note

Body rewritten 2026-09-17. As filed it described a host called zion
running Ubuntu Server, with three firewall rules deliberately not created.
Each of those three is now wrong, and each for a written reason:
ADR-0038
named the host smaug,
ADR-0040
replaced ADR-0016's operating-system clause with TrueNAS, and the rules were
created and verified in position on 2026-09-16 — as four, not three. The
comment history below is left exactly as filed.

Body rewritten again 2026-09-19. The 2026-09-17 body said the drives were
in transit and §1–§7 were all outstanding. The drives landed 2026-09-18, §1–§6
were done that evening and the next morning (#522), ADR-0040's transcode test
passed (#524), and a television played on the evening of 2026-09-19 (#541).
One reading is left. The comment history is again left exactly as filed.

What is decided

  • Host smaug at 10.0.40.30 on CasaBonita (40), a static below the DHCP
    range (ADR-0016), with a Kea reservation on morpheus beside it because
    either alone is a single point of drift. The name is ADR-0038's: zion is
    reserved for the dedicated firewall cold spare that does not exist, and no
    host answers to it.
  • Scraped, never pushing. Metrics over 99 → 40:9100, and no logs at all —
    Loki has no pull and its ingest is unauthenticated, so the reversal that keeps
    CasaBonita terminal outward costs this host its logs. smaug has no logs, and that is a decision — record it as a residual #255 recorded that as a
    residual and is closed.
  • Hardware: a Lenovo ThinkServer TS150 — Xeon E3-1225 v6, 8 GB ECC, four
    3.5" bays, HD P630 whose Quick Sync is what Media tier: Jellyfin — placement answers the terminal-VLAN problem #138 needed. Not the "quiet
    N100-class" chassis ADR-0008 pictured; docs/hardware.md describes it off the
    machine rather than off the listing, down to the machine type-model, the
    serial and the one DIMM in four slots.
  • TrueNAS 25.10, not Ubuntu Server (ADR-0040, superseding ADR-0016's
    operating-system clause). stacks/media/ stays in this repository as a
    compose file TrueNAS launches rather than becoming catalogue apps, so
    Dependabot, the digest pin check and make validate keep reaching it. What
    leaves CI's reach permanently is the pool and share layout, which
    build-the-nas.md carries instead.
  • It is where backups go: ADR-0027 installs Proxmox Backup Server with a
    sync job here, and ADR-0015's volume sets want an off-host home beyond
    oracle's shelf. Both shapes want re-reading under TrueNAS — ADR-0027's PBS trigger has fired, and its sync job was designed for a host smaug is not #485 and erebor/apps is declared backed up in two files and backed up by nothing #484
    carry that.

What has landed

build-the-nas.md §0 was complete on 2026-09-16 and §1–§6 on 2026-09-19,
and everything in it was read or verified rather than assumed.

§0 (PRs #476#479, comment of 2026-09-17 below):

  • BIOS flashed S06KT03R (2017) → S06KT81L (2024), boot block 1.03 → 1.81,
    done while the machine was empty. AHCI and CSM-disabled were already correct.
  • AMT was on Intel's factory-default credential — MEBx accepted admin, so
    no password had ever been set. Unprovisioned and disabled the same day, and
    recorded in SECURITY.md. Disabled rather than hardened, which is
    deliberately the opposite of what ADR-0033 does for shiva.
  • The boot disk is fitted — the optical drive came out of the 5.25" bay and
    the Intel DC S3520 240 GB went in on SATA5, on the bracket bought for it.
    SMART read back before the install: PASSED, 13,182 power-on hours, wearout
    088, and four reallocated sectors.
  • Addressed and reachable. Static set, reservation added, and four
    inbound passes created and verified from morpheus rather than from the UI.
    Every pass sits above Block access to CasaBonita. Winterfell is still
    refused on 443, and the TerminalSegmentReachedInternalNetwork cannot fire — the firewall logs blocks only #223 tripwire on igc0.40 reads zero packets.
On interface Source → destination Port
Hicks (50) vlan50 net10.0.40.30 443
Hicks (50) vlan50 net10.0.40.30 8096
Winterfell (99) 10.0.99.2010.0.40.30 9100
Winterfell (99) 10.0.99.2010.0.40.30 22

Hicks reaches 443 and not the 22 ADR-0016's table names — TrueNAS is
administered over HTTPS, and ADR-0040 carries the correction. Port 22 survives
on the Winterfell rule and is inert, because TrueNAS ships SSH disabled.

§1–§6 (#522, #524, comments of 2026-09-19 below):

Step Read rather than assumed
§1 fit SATA2/SATA3, bay fan untouched. The power lead has four wires and no orange one, so the pin-3 Power Disable trap does not fire on this supply
§2 SMART ZVTBS4NL and ZVTBSDL3, firmware SN03, both PASSED, 0 reallocated, 0 pending, 0 power-on hours by SMART and by smartctl -l farm — the counter a SMART reset does not touch. Extended tests started 2026-09-18
§3 pool erebor, a mirror of the two. Encryption off by decision. ONLINE, 0/0/0, no known data errors. 18 TB usable, not 36
§4 datasets erebor/media (SMB preset, 1M records, not backed up) and erebor/apps (Apps preset). Jellyfin's /config is a named volume on erebor/ix-apps, not erebor/apps#484's finding
§5 share media, user bilbo — SMB only, no UI, shell, SSH or sudo. One ACL entry added for Jellyfin's read as uid 65534. No workstation can mount it: SMB is 445 and no rule carries it — #523
§6 stack Running under TrueNAS's Docker from /mnt/erebor/apps/stack, from a copy of the two files in stacks/media/. make up STACK=media does not run on that host; a change is deployed there by hand
§6.1 scrape 9100 open, 443/8096 refused from the monitoring host, 36 node_filesystem_avail_bytes series including erebor and both datasets. up{job="node",instance="smaug"} reads 1
ADR-0040's reopen condition Closed. renderD128 listed inside media-jellyfin as root 107, id carries 107, and a forced transcode ran VAAPI decode on iHD, scale_vaapi, h264_qsv encode at about five times real time. Decision 2 stands
§7 television A television on CasaBonita played something on the evening of 2026-09-19, with no firewall rule involved. An earlier same-day claim was withdrawn within the hour; this is the reading
§7 re-reads Tripwire at 143,780 evaluations, 0 packets, all four passes still above the block; port 15 on neo reads PVID 40, untagged, in the switch UI

What is left

One reading. Both Exos extended self-tests, started 2026-09-18 and at
10 % remaining on the evening of 2026-09-19, completing without error. Read
at the console — SSH is off by design and the monitoring host reaches 9100
and nothing else, so nothing in the estate can read it remotely:

smartctl -l selftest /dev/sda
smartctl -l selftest /dev/sdb

Completed without error on both, and PASSED, goes into hardware.md's
Exos entry and the §7 line, and closes this issue. A Completed: read failure
with an LBA on either drive is a return, not a pool member, and reopens §2.

What waits on it

Still waiting: #446's ISO store and the fifth inbound rule, and #139's
Plex test, which is now runnable rather than blocked.

No longer waiting — closed: #138 Jellyfin (on #522 and #524), #255 the
no-logs residual, #256 the scrape path.

Spawned by the build and not blocked by it: #484 erebor/apps is declared
backed up and backed up by nothing; #485 ADR-0027's PBS sync job was
designed for a host smaug is not; #523 the share is unreachable from
Hicks; #528 the stack has no secrets file. #140 and #141 land in
stacks/media/ in the shape it already has.

Purchases this needs

None. The box, the mirror, the boot disk and its bracket are all bought, all
landed, and all in the machine. This has not been blocked on money since
2026-09-11 and not on parts since 2026-09-18.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestmediastacks/media on smaug (VLAN 40)seq/1Step 1 within its milestone; same number = can run in parallel

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions