logo
Kurashizu Blogwhere ideas flow
  • Home
  • News
  • Blog
  • About
  • Home
  • News
  • Blog
  • About

© 2026 Kurashizu. All rights reserved.

Admin·New Post·Service Status
Powered by Cloudflare·30.10.26
← Back to news

Custom home server built from spare parts

Original article
asmat.ca|17 points|3 comments|by sotilrac|Sep 20, 2026

Custom Home Server: A Frankenstein Build from Spare Parts

By Carlos Asmat | Published: 2026-09-20 nas self-hosting linux 3d-printing esp32 zfs

"Google nagged me into this, along with every other enshittified cloud provider dealer."

For a full year, my smartphone persistently warned me that my storage was nearly depleted. To silence the alerts, I migrated my photo backups to a self-hosted Nextcloud instance. Once the space was cleared, the nagging simply shifted: now it reminded me that my backups were disabled. Gmail employs the same psychological warfare, peppering the interface with "Upgrade" buttons.

I have no desire to rent space for my own memories for the rest of my life, nor do I want Google analyzing my private images. My goals were clear:

  • Create a centralized family file repository.
  • Establish automatic backups for legacy PCs and mobile phones.
  • Build a machine capable of 24/7 Linux ISO downloads without disturbing anyone.

The Hardware: "Pascal's Wager"

Buying new hardware lately—especially GPUs—has become an exercise in insanity. Fortunately, I've always kept every GPU I've ever owned (because one never knows when they'll need fast matrix multiplication). I found the perfect candidate: a Zotac MAGNUS EN1070K.

Base System Specifications

ComponentDetail
CPUIntel i5
GPUNVIDIA GTX 1070 (Pascal Architecture)
RAM32 GB DDR4 (Maxed out via laptop sticks)
Boot Drive1 TB SSD
NetworkWiFi 6E Card

This compact unit previously served as a living room media hub and a gaming rig; I even used the same model for robot prototypes. It is efficient at idle, handles video transcoding via the GPU, and can run small local AI models without struggle.

The Engineering Challenge

The Zotac's primary flaw is its limited storage capacity: it was designed for a single 2.5" drive. To fix this, I used Onshape to design a custom body extension, which I then 3D-printed using glass-filled ABS.

The Internal Layout

The modified chassis now houses:

  1. An ICY Dock five-bay hot-swap cage.
  2. A custom-printed bracket for a sixth drive.
  3. A Pico PSU powered by an upgraded 19.5V Zotac brick via a DC-DC converter (necessary because six spinning drives pull ≈125W\approx 125\text{W}≈125W during spin-up).
  4. Noctua fans for thermal management.

To get six SATA ports, I installed an ASM1166 adapter into the M.2 slot. Consequently, the 1 TB boot SSD was relocated to the original 2.5" bay.

Storage and the Market Crisis

Most of the build came from my "junk drawer," but I had to buy the drives. I thought we were past mechanical storage, but high-capacity SSDs currently cost "a couple of kidneys."

The current market is brutal: AI data centers are hoarding every chip and platter available.

  • Western Digital: HDD production is sold out through 2026.
  • Memory: DRAM and NAND contract prices nearly doubled in one quarter.

I managed to find a matched set of 8 TB WD Red Plus drives on eBay. I configured them in a single RAIDZ2 pool.

The Storage Math: Raw Capacity: 43.7 TB→Usable Capacity: 29 TB\text{Raw Capacity: } 43.7\text{ TB} \rightarrow \text{Usable Capacity: } 29\text{ TB}Raw Capacity: 43.7 TB→Usable Capacity: 29 TB Nuance: Any two drives can fail simultaneously without data loss.

The reliability is immensely satisfying. During a test, I pulled a drive; Samba kept serving files, I received an email alert, and the system resilvered automatically once the drive was re-inserted.

Security and Thermals

For security, the pool is encrypted. It unlocks at boot via a key server located elsewhere in the house. If stolen, the thief gets a 10 kg paperweight (8.5 kg for the unit + 1.5 kg for the 300W power brick).

However, there is a thermal trade-off. While steel cases dissipate heat, my printed ABS enclosure acts as an insulator.

  • Idle Temp: ≈45∘C\approx 45^\circ\text{C}≈45∘C (roughly 10∘C10^\circ\text{C}10∘C above the ideal).
  • Status: The dashboard warns me daily, though extra Noctua fans have helped slightly.

The "Eye Candy": Custom Status Panel

Rather than a standard monitor, I added a tiny touchscreen driven by an ESP32-S3, which I soldered directly to the Zotac's USB pads.

The firmware (written in C using the LVGL library) renders seven swipeable screens:

  • Pool Health
  • Drive Temperatures
  • Application Status
  • Network Throughput
  • Power Menu (featuring a menacing countdown for reboots/shutdowns)
// Conceptual LVGL screen switch
if (gesture == SWIPE_LEFT) {
    lv_scr_load(next_status_screen);
}

Touchscreen status panel

The Truth about TrueNAS

Despite the glowing recommendations from YouTubers, my experience with TrueNAS was disappointing. Because my server is located far from the router, it relies on WiFi. While my WiFi 6E card is fast—hitting 893 Mbit/s (outperforming the gigabit ports)—TrueNAS has zero wireless support in the UI or console.

Furthermore, the latest release swapped proprietary NVIDIA drivers for the open kernel module, adding another layer of friction to the setup.