There are a lot of good things about the modern world of cloud services. It’s great to be able to move from old devices to new ones without having to transfer data, having everything on the new device automatically sync up from a cloud service. It certainly makes it more attractive to upgrade, which is surely why the service providers (most of whom have consumer hardware businesses) provide the service.
It’s also nice to see a consistent set of files, media, and configuration settings from nearly any device without having to keep things synchronized by hand. I’ve already spent far too much of my life copying files and settings, so I can truly appreciate having it “taken care of.”
But it’s not perfect yet. The public Internet still isn’t as fast as it ought to be (due to bad policy in the U.S.), nor as reliable and always-available as it could be. There are times it takes too long to transfer data in or out of the house, and there are even times the connection is unavailable temporarily, or when the cellular signal away from home is too weak or too expensive to use for something big. And, perhaps most importantly, there are still a lot of privacy and data access issues to be worked out in the public cloud. Call me old fashioned, but I still feel the old “possession is nine-tenths of the law” rule in my bones.
For all of these reasons, running services at home still seems to make sense. Having been a system administrator for a highly distributed environment in my early career, I’m no stranger to running services for myself. Here’s a brief summary of what I’ve set up in our home.
Our main server is a tiny box that we keep in the kitchen on a shelf right next to our internet modem and our wireless router. It’s an Intel NUC with a Core i5 processor, 8GB RAM, 120GB internal SSD, and a 1GB/s wired ethernet connection to our router, running Fedora Linux, server edition. It has an external USB 3TB hard drive for backups and an external 900GB SSD for music and videos. I administer it via ssh and keep it headless. The services on it are as follows.
- An Apple AFP server for Time Machine backups on our Mac laptops and desktops.
- An OwnCloud server for cloud file service.
- A Plex Media Server, which serves my music library and our family video library for the household devices (iPads, Mac & Linux laptops, Mac & Linux desktops).
- A web server and database server for this blog!
All of the above are free. The NUC server itself was quite inexpensive, since I bought it without a monitor or an operating system and installed the RAM, hard drives, and (free) Fedora OS myself.
I also have a Linux desktop in my home office that I use mostly for work, and it runs the Globus Connect Server, which lets me move data in and out of the house via a nice web application called Globus that my work team offers to the research community.
We also have several commercial servers in the house that add nifty features.
- Our Ooma Telo device provides VOIP phone service.
- A data collection box attached to our solar power array provides realtime power generation and system status data. (We use a public cloud service to collect the data regularly and generate historical displays.)
- Our Internet router provides a VPN service and port forwarding services that allow us to access the home services from anywhere on the Internet.
- An elderly Mac Mini in my office provides iTunes Home Sharing for iTunes Store DRM-locked videos.
- For a while, I used a Raspberry Pi hardwired to our garage door opener to provide a web interface for opening/closing and checking the door status. (Open or closed: inquiring minds want to know?) Not being an electrical engineer, I soon found that the wiring wasn’t up-to-snuff, and have since disconnected it until I get my voltages and protocols straightened out.