Here are three projects I’ve embarked upon that you may also enjoy.
Build a home server
My last home lab was more than a decade ago, and it consisted of a legitimate server rack loaded with several outdated servers I’d acquired on eBay. It was loud, hot, the size of a refrigerator, and probably added significantly to our electric bill, not to mention that setup, configuration, and maintenance were not insignificant tasks.
SEE: Data Circuit Installation or Change Checklist (TechRepublic Premium)
Hardware has become increasingly powerful while size and power consumption have decreased. While eBay still has myriad opportunities to buy cast-off “big iron,” I selected components designed for a combination of silence, small size, and performance. There’s a unique joy to carefully selecting components, then assembling and connecting them, and then applying power and pressing On for the first time. If you’re lucky, you get to watch your hardware come to life. With your box built, it’s time to install some software.
Provision your one-box data centre
One of the major innovations that amazed me as I started this project was how far virtualization technologies have advanced. I ended the hands-on portion of my tech career as virtual machines were being broadly deployed, and now tools like Docker allow for what’s essentially a purpose-built server, called a container, to be downloaded, provisioned, and running in a matter of minutes, without having to build an underlying operating system on any of the associated complexities.
SEE: 10 things companies are keeping in their own data centres (free PDF) (TechRepublic)
There are a number of tools for running Docker containers, and I chose UnRAID, a customized version of Linux that provides basic file sharing as well as the ability to run Docker containers and conventional virtual machines. There’s an app store of sorts for Docker containers, and within a few days I’d spun up things like Pi-hole, which blocks advertisements and trackers on our home network, Organizr, a neat homepage tool, and a set of home automation tools. It’s been fun to integrate the various applications, configure things like secure remote access, and be able to explore new services and tools far more easily than having to start from bare metal.
Build your own service
One of the most interesting Docker containers I installed was Node-RED, which bills itself as a “programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.” While initially a bit intimidating, it basically allows for stringing together tools in a flowchart-like manner to create new things, in many cases without writing any code.
SEE: How to create your own Docker image (TechRepublic)
For example, I was able to create a flow that receives geolocation data from my phone, using the OwnTracks app. The flow then decodes the location information, feeds it to a variety of geofence nodes to determine if I’m present in a set of locations, and then uses a Google API to decode the latitude and longitude into a human-readable address. All this information is then sent to my home automation system (running in a virtual machine on UnRAID) via MQTT (another Docker container), which is a protocol designed to facilitate communication among Internet of Things (IoT) devices.
This took a couple of days to get working, but it pushed me to learn the rudiments of web APIs, sling a dozen lines of JavaScript, and think through a problem with a coding mindset, a side of my brain that has sat idle for a while. If you’ve ever found yourself lamenting “If only I could connect X and Y,” Node-RED probably allows that ability while providing a learning opportunity that’s close enough to coding to activate that skillset, and abstracted enough as to not create an unreasonably high barrier to entry.
While it might seem like you’re allowing work to intrude on your play by embarking on some of these projects, you may find it a refreshing mental break as well as something that augments your skills as a leader.