DEV Community

疏影
疏影

Posted on

Building a Personal Cloud at Home: The 2026 Hardware Guide

Building a Personal Cloud at Home: The 2026 Hardware Guide

Five years ago I was paying Dropbox $120/year. Today I have 16 TB of personal cloud storage that costs me $25/year in electricity. This is the exact hardware I bought, the exact software I run, and what I'd do differently if I started over in 2026.

The setup at a glance

  • 1× Beelink ME Mini N100 (the brains, 25W idle)
  • 2× Seagate IronWolf 8 TB NAS drives (the storage, ~$130 each)
  • 1× 32 GB microSD card (boot drive, $12)
  • 1× UPS battery backup (the insurance, $60)
  • 1× Gigabit switch (already had, $0)

Total: ~$332 upfront, $25/year in electricity.

Why this and not a Synology / QNAP

I've used a Synology DS220+ for 2 years at a previous job. It was great. But:

  • A Synology DS224+ with 2× 8 TB (8 TB usable in SHR) costs $700+. With my setup you get 8 TB RAID 1 for $300.
  • Synology's OS is locked in. You can install Docker and most things work, but you can't easily replace the OS.
  • A Beelink N100 has 4× the RAM (16 GB) and a real x86 CPU. The Synology has ARM.
  • I wanted to learn the underlying Linux stack. With a Synology, I wouldn't have.

The 2 most important things I learned

  1. Buy NAS drives, not desktop drives. I tried desktop drives first. They failed after 14 months because they don't have the rotational vibration compensation. NAS drives (IronWolf, WD Red Plus) have RV sensors and are designed for 24/7 operation. $130 vs $90 — worth the $40 difference per drive.

  2. Buy a UPS, not just a surge protector. I had a 2-second power blip last year that corrupted the ZFS pool. The pool wouldn't import until I did zpool import -F and lost 3 days of changes. The $60 UPS I bought afterward would have prevented all of that. Don't skip this.

The software stack

I'm running Ubuntu 24.04 LTS on the N100. Here's what's installed:

1. ZFS for the storage pool

apt install zfsutils-linux
zpool create -f -o ashift=12 tank mirror /dev/disk/by-id/ata-SEAGATE_1 /dev/disk/by-id/ata-SEAGATE_2
zfs create tank/data
Enter fullscreen mode Exit fullscreen mode

This creates a 8 TB mirror (RAID 1) of the 2 drives. If one drive fails, I buy another $130 drive, plug it in, run zpool replace, and the array rebuilds in about 8 hours.

The ZFS checksums caught 2 silent bit-rot cases for me in the last 3 years. ext4 / NTFS would not have. This is why I use ZFS.

2. Nextcloud for the WebDAV endpoint

docker run -d \
  --name nextcloud \
  -p 443:443 \
  -v /tank/data/nextcloud:/var/www/html \
  nextcloud:29-apache
Enter fullscreen mode Exit fullscreen mode

Then I enabled WebDAV at Settings → Administration → WebDAV. The endpoint is at /remote.php/dav/files/<username>/.

The reason I use Nextcloud instead of rolling my own WebDAV server (Apache mod_dav, nginx dav, etc.) is that Nextcloud handles:

  • File locking (so two users don't edit the same file)
  • Trash bin
  • Versioning
  • Sharing (so I can give a friend read access to a single folder)
  • 2FA
  • A nice web UI for the few times I want to use it

3. ScsDriver for the Windows mount

On my Windows machine, I install ScsDriver and point it at the Nextcloud WebDAV endpoint. The drive letter Z: shows up in Explorer, and the 16 TB of storage is just a regular drive.

This is the part that makes the whole setup usable. Without ScsDriver, I'd have to use the Nextcloud desktop client, which syncs one folder at a time. With ScsDriver, the entire 16 TB is just Z:\.

4. Tailscale for off-LAN access

When I'm at a coffee shop, I want to access my files. Tailscale gives me a WireGuard VPN to my home network without opening any ports on the router.

curl -fsSL https://tailscale.com/install.sh | sh
tailscale up
Enter fullscreen mode Exit fullscreen mode

Then on the Windows machine, also install Tailscale and log in to the same account. Now the Nextcloud is reachable at http://100.x.x.x from anywhere. ScsDriver connects to that, and the drive is mounted over the WireGuard tunnel.

The speed is fine for documents (2-5 MB/s) but slow for video. For video, I just don't bother — I download the file locally first if I need to watch it.

The maintenance routine

Every Sunday at 2am, a cron job does:

#!/bin/bash
# scrub the ZFS pool
zpool scrub tank

# snapshot the Nextcloud data
zfs snapshot tank/data@auto-$(date +%Y%m%d)

# prune snapshots older than 30 days
zfs list -H -o name -t snapshot | xargs -r -n1 zfs destroy

# backup the catalog files (Lightroom etc.) to the cloud
rclone sync /tank/data/catalogs b2:my-backup-bucket/catalogs
Enter fullscreen mode Exit fullscreen mode

The scrub takes about 4 hours on 8 TB. The snapshots use minimal space because ZFS is copy-on-write. The rclone backup runs in the background.

I've never had a data loss. The ZFS checksums + UPS + offsite backup have saved me 3 times in 3 years.

What I'd do differently in 2026

  • 2× 12 TB drives instead of 2× 8 TB. Same case, more storage. 12 TB IronWolf is $200, so total is $60 more. Worth it.
  • Skip the microSD boot drive. Use a 128 GB SATA SSD instead. MicroSD wears out faster under random writes.
  • Add a second N100 as a backup server. The current setup has 1 server. If the N100 dies, I lose access until I buy a new one. A second N100 with periodic rsync would be more reliable.
  • Skip the WireGuard and use Tailscale from day 1. I tried WireGuard first, but the key management was annoying. Tailscale is set-and-forget.

What this whole setup costs vs Dropbox

Personal cloud Dropbox Plus
Upfront $332 $0
Year 1 $25 electricity + $120/mo Tailscale (optional) $120
Year 2 $25 $120
Year 3 $25 (assuming 1 drive replacement) $120
Year 5 $25 $120
Storage 8 TB 2 TB

By year 3 the personal cloud is cheaper, and you have 4× the storage.

Pricing (overseas)

The WebDAV mount tool I use daily is $5.5 lifetime, which is what makes the whole setup usable on Windows.

  • $1.5 / month
  • $5.5 / year
  • $5.5 lifetime (limited-time, was $9.99)

CN users: the lifetime price in China is ¥20, separately listed on the official site.

FAQ

Q: Can I use a Raspberry Pi instead of a Beelink?
A: Yes, but USB drives attached to a Pi are slow (USB 2.0 bus) and unreliable (USB-SATA bridge chips vary in quality). A Beelink with SATA is much better.

Q: What about TrueNAS instead of Ubuntu + ZFS?
A: TrueNAS is great. I used it for a year. The reason I switched to plain Ubuntu + ZFS is that I wanted to run other services (Plex, Paperless-ngx, Vaultwarden) and TrueNAS's plugin system was limiting.

Q: Is 8 TB enough?
A: For me, yes — 4 TB of photos, 2 TB of videos, 1 TB of documents, 1 TB of backups. If you have 4K video, you might want 16 TB or 24 TB. Just add more drives in the same ZFS pool.

Q: What about the heat?
A: The Beelink N100 has a small fan. In a closed closet, the temperature stays at 35°C. The drives are rated for 0-60°C. No problems.

Top comments (0)