User Tools

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…

  • One day your home internet connection is down and so you find out about reliability
  • One day power goes out at home, and you find out that an unexpected server reboot might cause side issues…
  • One day, maybe during a hot summer day, your USB network card fails on you, when you are on vacation…
  • One day that critical CalDAV service stop working due to a Python update and you miss an appointment…
  • One day maybe you get hacked….

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:

  • Have a proper backup plan in place (see here), and verify your backups regularly.
  • Have two ISPs to provide a failsafe internet connection (see here)
  • Stored your data on some redoundant RAID array (see here)
  • Have an UPS solution to protect your server / disk RAIDS from blackouts

Architecture

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

  • A home server which hosts all the private services you need (see here)
  • An automation server which takes care of the home automation itself (see here)
  • A network gateway which connects your home network to the outside world (see here)
  • One or more WiFi access points to provide reliable WiFi coverage to your home (see here)
  • An external server which hosts your public services, if any, and ensure external accessibility to your private services (here)

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)      │                  ││         
        │                         │ │                   │                  ││         
        │                         │ └───────────────────┘                  ││         
        │                         └────────────────────────────────────────┘│         
        └───────────────────────────────────────────────────────────────────┘                                                                                        

This website uses technical cookies only. No information is shared with anybody or used in any way but provide the website in your browser.

More information