Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
1.selfhost:start [2025/03/13 09:37] – [A) The Approach] willy | 1.selfhost:start [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== 1] Self Hosting ====== | ||
- | |||
- | ====== 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. | ||
- | |||
- | 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, | ||
- | * Have a **proper backup plan** in place (see [[selfhost: | ||
- | * Have **two** ISPs to provide a failsafe internet connection (see [[router: | ||
- | * Stored your data on some redoundant **RAID array** (see [[selfhost: | ||
- | * Have an **UPS** solution to protect your server / disk RAIDS from blackouts | ||
- | |||
- | |||
- | ===== Architecture ===== | ||
- | |||
- | Focusing on your technological home architecture, | ||
- | * A //home server// which hosts all the private services you need (see [[selfhost: | ||
- | * An // | ||
- | * A //network gateway// which connects your home network to the outside world (see [[selfhost: | ||
- | * One or more //WiFi access points// to provide reliable WiFi coverage to your home (see [[networking: | ||
- | * An //external server// which hosts your public services, if any, and ensure external accessibility to your private services ([[selfhost: | ||
- | |||
- | 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 **un**planned maintenance. | ||
- | |||
- | < | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | │ | ||
- | │ | ||
- | ┌─────────┼───────────────────────┼─────────────────────────────────┐ | ||
- | │ | ||
- | │ | ||
- | │ | ||
- | │ | ||
- | │ | ||
- | │ ┌───────▼───────────┐ | ||
- | │ │ | ||
- | │ │ home server | ||
- | │ │ | ||
- | │ └───────────────────┘ | ||
- | │ | ||
- | │ | ||
- | │ | ||
- | │ | ||
- | │ | ||
- | │ | ||
- | │ │ ┌───┼───────────────┐ | ||
- | │ │ │ | ||
- | │ │ │ WiFi Access | ||
- | │ │ │ | ||
- | │ │ │ | ||
- | │ │ └───────────────────┘ | ||
- | │ | ||
- | └───────────────────────────────────────────────────────────────────┘ | ||
- | </ | ||
- | |||
- | |||
- | |||
- | |||
- | |||