Table of Contents

A) The Approach

Self-hosting and Home-Automation are something that grow over time, getting more complex and elaborated. You start small, with some recycled hardware and makeshift cables to host some experimental services, then you start self-hosting important stuff. You add sensors, devices, IP cameras, and so on as yo udiscover new toys and interesting stuff to try out.

But then…

So you start studying and investing in UPS, reodundant ISPs with failover capability, advanced routing for your services, containers, backup techniques…

I went trough the process (except i never got hacked, maybe my security measures where good from the beginning, or i was lucky, o maybe i just never noticed?), and you will as well go trough it.

At the beginning i started out with a very simple approach, spent one year and half more or less expanding to the point where something a little bit more advanced was actually required. I will describe my final implementation (which, actually, is in constant evolution) and, along the way, also describe simpler ways to achieve similar results.

Basic Requirements

The following are the very basics that i assume you will take into consideration, on which you should not even think to skip:

Architecture

Focusing on your technological home architecture, here is composed of:

This approach separates the main pillars of the setup in a way that makes the overal environment more resillient and each pillar less critical if (when) it goes down for any reason like an hardware failure, software bug or just unplanned maintenance.

                                                                          
               ┌───────────────┐                                                      
               │               │                                                      
               │  External     │                                                      
               │   Server      │                                                      
               │               │       Internet                                       
               └───────────────┘                                                      
                  │                       ▲                                           
                  │                       │                                           
        ┌─────────┼───────────────────────┼─────────────────────────────────┐         
        │         │                       │                                 │         
        │         │                  ┌────┼────────┐                        │         
        │         │                  │             │                        │         
        │         │                  │  Gateway   ◄┼──────┐                 │         
        │         │                  │             │      │                 │         
        │ ┌───────▼───────────┐      └──▲──────────┘      │                 │         
        │ │                   │         │                 │                 │         
        │ │   home server     │         │                 │                 │         
        │ │                   │         │                 │                 │         
        │ └───────────────────┘   ┌─────┼─────────────────┼────────────────┐│         
        │                         │     │            ┌────┼─────────────┐  ││         
        │                         │     │            │                  │  ││         
        │                         │     │            │    Automation    │  ││         
        │         Home            │     │            │      Server      │  ││         
        │                         │     │            │                  │  ││         
        │                         │     │            └──────────────────┘  ││         
        │                         │ ┌───┼───────────────┐                  ││         
        │                         │ │                   │                  ││         
        │                         │ │    WiFi Access    │                  ││         
        │                         │ │     Point(s)      │                  ││         
        │                         │ │                   │                  ││         
        │                         │ └───────────────────┘                  ││         
        │                         └────────────────────────────────────────┘│         
        └───────────────────────────────────────────────────────────────────┘