Smart Home Appliances - Part 1 - Overview

This is the first article in the series Smart Home Appliances. It introduces the concept of a more sophisticated home made smart home appliances. If you are not familiar with Software Engineering, DevOps, Cyber Security or any related field this may be go over your head. If you are or if you are brave enough continue reading.

Smart Home Appliances Series

  1. Part: Smart Home Appliances - Part 1 - Overview (this article)
  2. Part: Smart Home Appliances - Part 2 - The Design
  3. Part: Smart Home Appliances - Part 3 - Implementation via Automation (coming soon)

What is it?

The Smart Home Appliances project is run under the name homearpa or home.arpa, based on the internal domain with the same name, as defined by the IETF1 in the RFC8375. It is a collection of automation tools, paradigms, principles and ideas that create a pretty much self-contained hardware appliances that is able to host the necessary smart home software.

Objective

In this series we will take a piece of small form factor hardware with multiple ports, in our case 2.5 GbE, but 1 GbE ports are just fine. In order for this tutorial to work we assume multiple ports. If you have a device with only one or two ports you can replicate the solution by using VLANs and a trunk port. This is goes beyond the scope of this series.

What do we want to achieve?

  1. Setup a Proxmox VE as Hypervisor that will host all our VMs and our Kubernetes cluster
  2. Setup a Vyos VM that routes traffic from outside (WAN or external LAN) to our smart home appliances internal network(s) with related zone-based firewall rules
  3. Setup a three nodes Kubernetes cluster, with three VMs.
  4. Setup Teleport as reverse proxy with audit functionality

The article series is mentioning pfSense as upstream “main” firewall/router and TrueNAS as data backend. Both can be substituted with anything else and do not have any impact on the steps and design outlined here.

If you want to know how to deploy your applications via a mature and robust DevOps pipelines (CI and CD parts) checkout the following articles.

  • Argo CD with Gitlab CI - Part I

    In this article we will outline an example workflow how to integrate Gitlab CI with Argo CD to achieve a robust SDLC2 process that is suitable for enterprises as well as for your Homelab. This article will focus on the CI part with Gitlab.

  • Argo CD with Gitlab CI - Part II

    Goes into details how to deploy and use Argo CD. It basically leverages the state and artifacts (docker images) generated and maintained via Gitlab.


  1. IETF is the Internet Engineering Task force that specifies and maintains a lot of the standards we are using on the internet. ↩︎

  2. SDLC stands for Software Development Life Cycle. ↩︎

Author

Alex Oberhauser

Alex Oberhauser is a tech-entrepreneur, innovator and former C-level executive. He is currently working on user controlled identities and the empowerment of the end-users, with privacy and security as part of the value proposition, not as an afterthought.

Comments


You can use your Fediverse (e.g., Mastodon) account to reply to this post .

  

Reply to obale's post

With an account on the Fediverse, such as Mastodon, you can respond to this post. Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform.

Copy and paste this URL into the search field of your favorite Fediverse app or the web interface of your Mastodon server.