Abhay Rana aka Nemo

Home Server Build

I’d been planning to run my own home server for a while, and this culminated in a mini-ITX build recently. The exact part list is up at https://in.pcpartpicker.com/list/krc8Gf. (Update: This is the current edition of the build, with some new hardware, as of April 2019).

In no particular order, here were the constraints:

  • The case should be small (I preferred the Elite 110, but it was unavailable in India).
  • Dual LAN, if possible (decided against it at the end). The plan was to run the entire home network from this directly by plugging in the ISP into the server.
  • Recent i3/i5 for amd64 builds.
  • Enough SATA bays in the cabinet for storage

The plans for the server:

  1. Scheduled backups from other sources (Android/Laptop)
  2. Run Kodi (or perhaps switch to Emby)
  3. Run torrents. Transmission-daemon works. Preferably something pluggable and that works with RSS
  4. Do amd64 builds. See https://github.com/captn3m0/ideas#arch-linux-package-build-system
  5. Host a webserver. This is primarily for serving resources off the internet
    • Host some other minor web-services
    • A simple wiki
    • Caldav server
    • Other personal projects
  6. Sync Server setup. Mainly for the Kindle and the phone.
  7. Calibre-server, koreader sync server for the Kindle
    • Now looking at libreread as well
  8. Tiny k8s cluster for running other webapps
  9. Run a graylog server for sending other system log data (using papertrail now, has a 200MB limit)

No plans to move mail hosting. That will stay at migadu.com for now.

I had a lot of spare HDDs that I was going to re-use for this build:

  1. WD MyBook 3TB (external, shelled).
  2. Seagate Expansion: 1TB
  3. Seagate Expansion 3TB (external, shelled)
  4. Samsung EVO 128GB SSD

The 2x3TB disks are setup with RAID1 over btrsfs. Important data is snapshotted to the other 1TB disk using btrfs snapshots and subvolumes. In total giving me ~4TB of storage

Hardware Updates

Mar 2018

  • Switched from the 1TB Expansion to a 3TB Seagate Expansion that I got cheap on Amazon. The disk setup is now btrfs RAID1 over 3x3TB disks.
  • I added a UPS. Twitter Thread with some details.

Dec 2018

I added a new 8GB RAM (Kingston HyperX Fury DDR4), and a NVidia Graphics Card (1050 Ti 4GB OC)

Jan 2019

A friend was leaving Bangalore and offered me her UPS, so now I have a 2xUPS(600VA) setup now.

Feb 2019

The WD 3TB MyBook HDD was dying, so I replaced it with a 3TB Seagate Barracuda Internal HDD.

The current version of the build is at https://in.pcpartpicker.com/list/fZfp6s

Software

Currently running kodi-standalone-service on boot. Have to decide on a easy-to-use container orchestration platform. Choices as of now are:

  1. Rancher
  2. Docker Swarm
  3. Shipyard
  4. Terraform
  5. Portainer

Most of these are tuned for multi-host setups, and bring in a lot of complexity as a result. Looking at Portainer, which seems well suited to a single-host setup.

Other services I’m currently running:

  1. elibsrv. Running a patched build with support for ebook-convert
  2. ubooquity for online reading of comics


If you’re interested in my self-hosting setup, I’m using Terraform + Docker, the code is hosted on the same server, and I’ve been writing about my experience and learnings:

  1. Part 1, Hardware
  2. Part 2, Terraform/Docker
  3. Part 3, Learnings
  4. Part 4, Migrating from Google (and more)
  5. Part 5, Home Server Networking
  6. Part 6, btrfs RAID device replacement If you have any comments, reach out to me
Published on September 17, 2017 in homeserver,archlinux,hardware