Building my own cloud

One of the best benefits of having a background in computer science and software engineering is that you get the chance to use your skills outside of the workplace so often. The technologies we use at work are often also deeply nested in our daily lives. This can be seen in the food delivery app we order from for a quick lunch, the portal we log into to check out bank account balance, and the app we ‘tap’ to unlock our city bicycle.

Everything I learn in my career is just another thing I want to use for myself on my own time, both for practice and continued education, or to solve a problem or automate a task. I am always invigorated when I can use my professional skills to make my personal life easier or build cool experiences in my own home. One project I am always proud of and grateful to have built is my home lab.

Whether you want to host your own home grown applications or something off the shelf, standing up a home server can give you a dedicated foundation to running your own ‘baby cloud’. A little environment just for you to experiment, learn, and build cool stuff that you can use every day. Today I’ll show off where my home lab is today, how we got here, and of course what’s next for the home lab.

Where are we now?

As of writing this article, my home lab consists of a few different pieces of hardware, many different applications and technologies working together, and some fun projects and experiences built out of all that. Let’s dive in.

WAN & Infrastructure

My home, like many in the continental united states has access to two home internet providers, a DSL provider (which uses the existing phone lines to provide internet access) and a cable provider (Which uses chained coaxial connections). I have many opinions about each type of connection, and I’m sure many of you do too, but after testing the reliability of each provider, I decided to stick with the cable provider. In this case, that’s Comcast. This connection powers my entire home including my home lab and smart home setup.

LAN & Wi-Fi

From the cable port on my main level, I have a NetGear modem that relays the signal. From there I route the WAN connect to my Google mesh Wi-Fi routers which I call ‘the three sisters’. I have one on every floor with the one nearest the modem acting as the primary node. The nodes on the second floor and basement both expose an ethernet port which I use to connect my home lab.

Smart-Home

On the second floor my office hub sits, this includes my printer, Philips Hue hub, and many other ‘dumb’ appliances. A simple switch linked to the sister node keeps all of this hard lined into the network for easy access. The Hue hub keeps my lightbulbs connected, but all my other smart-home devices connect directly to the network including my Nest doorbell, thermostat, and many many many Google assistant smart speakers. I also have a trio of temperature sensors, one on each floor that give me a good reading of each room.

Work Station

In the basement, the final sister node and another simple switch connects both my PC work station and my home server to the network. My PC sits on a rolling cart and my home single home server is racked in a small hub with build in shelves which hold all the periphery. An integrated power strip gives me instant control over the whole hub. An old monitor sits on top of the unit, outputting the feed from the server.

Baby Cloud

The server itself is a DELL R240 single unit enterprise grade server. Its built with only a modest amount of CPU and RAM but is highly optimized and uses the resources quite well. The server has four front facing disk slots as well as a boot optimized storage solution card for the operating system. The server also features the DELL iDRAC service which acts as a simple side car server that can be used to manage the operating system, bios, and runtime of the primary machine, this makes management a breeze.

TrueNAS

The brain of the baby cloud is TrueNAS, an open source ‘application as an OS’ that the server runs at start up. TrueNAS is awesome for many reasons, but I’ll try to highlight the ones I use the most.

  • Built in web GUI that I can use to access the server on the local network
  • An integrated kubernetes cluster that services containerized apps
  • A disk management utility that makes setting up NAS a piece of cake
  • Network configuration tools and filesharing
  • An integrated terminal and application log feed
  • Applications

    Running in the TrueNAS cluster are many applications that power the ‘home lab experience’. These include but are not limited to…

  • Uptime Kuma which monitors our apps and sites and alerts me on Slack if they go down
  • CloudFlare DDNS which syncs my domain(s) with my ephemeral home IP address
  • CloudFlare Tunnels which gives me secure external access to my applications
  • Traefik which exposes my applications using a reverse proxy and maintains certificates
  • Between these four applications I can safely call this a home lab with a solid integration with the outside world.

    Experiences

    On top of the home lab sit a few apps and features that make it all worth while including Plex where I serve up all my music, videos, movies, etc., A Minecraft server that my wife, I, and our friends play on, and a few other custom docker images that I use to host sites and run scripts.

    What’s next?

    There are a few things I’d like to work up to as part of my ongoing home lab expansion, including…

    Dual ISP Connection & Failover Routing

    I’d like to also subscribe to my DSL provider and stand up a dual ISP modem setup that would create a failover in the event in which my cable service fails as well as create additional bandwidth for my external services to access the internet.

    Dedicated Ethernet

    I’d like to wire my house with dedicated ethernet to provide my home lab with an even faster connected the WAN and reduce wireless traffic in my home.

    Matter Smart-Home

    I’d like to upgrade many of my smart home devices to use the Matter standard to create a more reliable and offline smart home experience.

    MORE servers

    You may have noticed that in my above pictures, my DELL server seems a bit lonely, I’d like to purchase additional servers that can run applications for my home lab.

    Integrated switches

    My server rack could use a dedicated smart switch to route traffic between servers.

    Conclusion

    That pretty much covers my home lab, obviously I left out a lot of details and the platform is changing all the time, but I just hope you were inspired and one day set up a home lab for yourself.

    Thanks,

    As always, thank you for reading. I really appreciate it. 💖