Kurze Zusammenfassung
Dieser YouTube-Video von Techno Tim zeigt, wie er seine Heim-Server und -Dienste einrichtet. Er erklärt seine Netzwerktopologie, VLANs, Hypervisoren, Datenbanken, Container, Kubernetes-Cluster, DNS-Server, Heim-Sicherheit, Heim-Automatisierung und vieles mehr. Er zeigt auch, wie er seine Dienste überwacht und protokolliert, sowie wie er Updates verwaltet.
- Techno Tim verwendet Proxmox als seinen Hypervisor der Wahl und hat zwei Proxmox-Cluster, einen zu Hause und einen in einem Colocation-Rechenzentrum.
- Er verwendet TrueNAS für seine Speicherdienste und Home Assistant für seine Heim-Automatisierung.
- Er verwendet Kubernetes für die Container-Orchestrierung und GitOps für die Verwaltung des Zustands seiner Cluster.
- Er verwendet PiHole für DNS und Traefik für Reverse-Proxies.
Was hoste ich selbst?
In diesem Video erklärt Techno Tim, dass er viele Dienste selbst hostet, darunter Dashboards, Hypervisoren, NAS, DNS-Server, Reverse-Proxies, Heim-Sicherheit, Media-Server, Link-Seiten, Link-Verkürzer, Energiemanagement und vieles mehr. Er gibt auch einen Einblick in die Dienste, die er beibehält, die er ersetzt und einige große Änderungen, die er dieses Jahr plant.
Netzwerktopologie
Techno Tim erklärt seine Netzwerktopologie, die aus einer Vielzahl von Ubiquiti-Geräten besteht, darunter ein EFG, ein Switch Aggregation Pro, mehrere UniFi Flex-Switches, ein 48-Port-PoE-Switch, ein U7 Outdoor Pro, ein PoE 8-Port-Light, ein USW Ultra 210, ein U6 Mesh, ein U7 Pro und ein USP Plug. Er erklärt auch, wie er VLANs verwendet, um sein Netzwerk zu segmentieren, mit VLANs für Kameras, Gäste, Hauptnetzwerk, IoT, vertrauenswürdige Dienste und nicht vertrauenswürdige Dienste.
VLANs
Techno Tim erklärt seine VLAN-Konfiguration im Detail. Er hat ein VLAN für Kameras, das vom Internet isoliert ist, ein VLAN für IoT-Geräte, ein Haupt-VLAN für vertrauenswürdige Geräte und ein Gast-VLAN für Besucher. Er hat auch ein VLAN für nicht vertrauenswürdige Dienste, das er jedoch nicht mehr verwendet, da er diese Dienste in sein Colocation-Rechenzentrum verlagert hat.
Colocation-Netzwerk
Techno Tim erklärt, wie er ein Site-to-Site-VPN zwischen seinem Heimnetzwerk und seinem Colocation-Rechenzentrum eingerichtet hat. Dies ermöglicht es ihm, einige seiner vertrauenswürdigen Geräte direkt mit seinen öffentlichen Diensten im Colocation-Rechenzentrum zu verbinden.
Dashboard
Techno Tim verwendet Home Page als sein Dashboard. Er mag Home Page, weil es sehr flexibel ist, viele Dienste unterstützt und Daten aus diesen Diensten zurückgeben kann. Er mag es auch, weil es vollständig konfigurationsbasiert ist und er alles über YAML konfigurieren kann.
Hypervisor
Techno Tim verwendet Proxmox als seinen Hypervisor der Wahl. Er mag Proxmox, weil es Open Source ist, auf KVM basiert und eine großartige Web-GUI zum Verwalten aller seiner virtuellen Maschinen bietet. Er hat vier Knoten in seinem Proxmox-Cluster, darunter Storinator, der in einen Proxmox-Knoten umgewandelt wurde.
Zweiter Cluster
Techno Tim hat einen zweiten Proxmox-Cluster in seinem Colocation-Rechenzentrum. Dieser Cluster enthält drei 1U-Server, auf denen Proxmox ausgeführt wird. Er verwendet diesen Cluster, um verschiedene virtuelle Maschinen und LXC-Container auszuführen, darunter Postgres, HAProxy, MongoDB, MySQL, Rancher, DNS und Kubernetes.
Datenbanken und LXC
Techno Tim erklärt, dass er früher viele seiner Datenbanken in Kubernetes ausgeführt hat, aber er hat festgestellt, dass dies nicht die beste Lösung ist. Er hat seine Datenbanken jetzt in dedizierte virtuelle Maschinen verlagert, um sicherzustellen, dass sie über genügend Ressourcen verfügen.
Postgres
Techno Tim verwendet Postgres für seine Datenbanken. Er hat einen HA-Cluster mit drei Knoten, die mit HAProxy verbunden sind.
HA Proxy
Techno Tim verwendet HAProxy als Proxy vor Postgres, um Anfragen an die verfügbaren Knoten zu leiten.
MongoDB
Techno Tim verwendet MongoDB für einige seiner externen und internen Dienste. Er hat einen HA-Cluster mit drei Knoten.
MySQL und MariaDB
Techno Tim verwendet MySQL für einige seiner Dienste, aber er plant, in Zukunft auch MariaDB zu verwenden. Er hat einen HA-Cluster mit drei Knoten, der jedoch noch nicht vollständig funktioniert.
Andere VMs
Techno Tim hat auch andere virtuelle Maschinen in seinem Proxmox-Cluster, darunter Rancher, DNS und Kubernetes.
Proxmox Backup Server
Techno Tim verwendet Proxmox Backup Server, um alle seine Maschinen zu sichern. Er hat zwei Datenspeicher, einen für sein Colocation-Rechenzentrum und einen für sein Heimnetzwerk.
Speicherdienste
Techno Tim verwendet TrueNAS für alle seine Speicherdienste, darunter SMB, NFS, iSCSI und Objekt-Speicher. Er hat fünf gespiegelte VDEVs mit zehn 14-TB-Festplatten.
TrueNAS Apps
Techno Tim verwendet Minio für Objekt-Speicher auf TrueNAS. Er plant, alle seine Home-Production-Dienste auf TrueNAS zu verlagern.
"Home Production"
Techno Tim erklärt, dass er seine Home-Production-Dienste, die er täglich verwendet, auf TrueNAS verlagern möchte. Dies liegt daran, dass TrueNAS eine hohe Verfügbarkeit bietet und er leicht Snapshots erstellen kann.
DNS
Techno Tim verwendet PiHole für DNS. Er hat drei DNS-Server zu Hause und zwei im Colocation-Rechenzentrum. Er verwendet Gravity Sync, um seine DNS-Einträge zwischen allen Servern zu synchronisieren.
5 DNS-Server??
Techno Tim erklärt, warum er fünf DNS-Server verwendet. Er hat drei DNS-Server zu Hause, von denen zwei virtuelle Maschinen sind. Er hat auch zwei DNS-Server in seinem Colocation-Rechenzentrum. Dies ermöglicht es ihm, DNS-Dienste bereitzustellen, selbst wenn sein Heimnetzwerk ausfällt.
Heim-Sicherheit
Techno Tim verwendet UniFi Protect für seine Heim-Sicherheit. Er hat fast zehn Kameras, die alle lokal auf seinem NVR aufnehmen.
Container
Techno Tim erklärt, dass er Docker für seine Container verwendet. Er hat eine virtuelle Maschine in Proxmox, auf der Docker ausgeführt wird, aber er plant, alle seine Container auf TrueNAS zu verlagern.
"Home Production" (Teil 2)
Techno Tim erklärt, dass er seine Home-Production-Dienste auf TrueNAS verlagern möchte, weil es einfacher zu verwalten ist und weniger Fehlerpunkte hat.
Container-Orchestrierung
Techno Tim verwendet Kubernetes für die Container-Orchestrierung. Er hat drei Kubernetes-Cluster, die mit Rancher verwaltet werden.
Andere Container (LXC)
Techno Tim verwendet LXC-Container für einige seiner Dienste, darunter HAProxy und MongoDB.
GitOps
Techno Tim verwendet GitOps, um den Zustand seiner Kubernetes-Cluster zu verwalten. Er verwendet Flux, um Änderungen aus seinem Git-Repository in seine Cluster zu übertragen.
Aktualisierung von Containern (und mehr)
Techno Tim verwendet Renovate, um Updates für seine Container zu verwalten. Renovate ist ein Bot, der nach neuen Versionen von Containern sucht und Pull Requests erstellt, wenn Updates verfügbar sind.
Reverse-Proxy
Techno Tim verwendet Traefik als seinen Reverse-Proxy. Er hat vier Instanzen von Traefik, eine auf seiner Docker-Maschine und drei in Kubernetes.
Was ist ein Reverse-Proxy?
Techno Tim erklärt, was ein Reverse-Proxy ist. Ein Reverse-Proxy ist ein Proxy, der Anfragen entgegennimmt und diese basierend auf ihren HTTP-Headern an Downstream-Dienste weiterleitet.
Zertifikate
Techno Tim verwendet Let's Encrypt für seine Zertifikate. Er verwendet Cloudflare Let's Encrypt für seine Docker-Instanzen von Traefik und Cert Manager für seine Kubernetes-Instanzen.
Überwachung und Protokollierung
Techno Tim verwendet Uptime Robot, um seine öffentlichen Dienste zu überwachen. Er verwendet Home Assistant, um einige seiner internen Dienste zu überwachen.
Andere Uptime-Überwachung
Techno Tim hat Uptime Kuma und Gatus für die Überwachung verwendet, aber er verwendet sie derzeit nicht mehr.
Datenvisualisierung
Techno Tim verwendet Home Assistant für die Datenvisualisierung. Er mag Home Assistant, weil es einfach zu bedienen ist und eine gute Benutzeroberfläche bietet.
Heim-Automatisierung
Techno Tim verwendet Home Assistant für seine Heim-Automatisierung. Er hat viele Geräte mit Home Assistant verbunden, darunter seinen 3D-Drucker.
Integration der Heim-Sicherheit
Techno Tim verwendet Scrypted, um seine UniFi Protect-Kameras mit HomeKit zu verbinden. Dies ermöglicht es ihm, Benachrichtigungen von seinen Kameras auf seinem Apple TV und Siri zu erhalten.
Link-Seite
Techno Tim verwendet Little Link für seine Link-Seite. Little Link ist ein Open-Source-Projekt, das er auf GitHub hostet.
Link-Verkürzer
Techno Tim verwendet Shlink für seinen Link-Verkürzer. Shlink ist ein Open-Source-Projekt, das er selbst hostet.
Media-Server
Techno Tim verwendet Plex für seinen Media-Server. Er verwendet Plex, um Live-TV und Over-the-Air-TV aufzuzeichnen.
Energiemanagement
Techno Tim verwendet NUT Server, um seine USV zu verwalten. Er hat drei USV, eine Tripp Lite USV, eine APC Backup USV und eine Eaton USV.
Content Management Systeme (CMS)
Techno Tim verwendet Ghost Blog als sein einziges CMS. Er hat WordPress und Wiki.js eingestellt.
Statische Site-Generatoren
Techno Tim verwendet Jekyll und Hugo als statische Site-Generatoren. Er verwendet sie, um seine Dokumentationsseite zu erstellen.
CI / CD (Was ist das?)
Techno Tim erklärt, was CI/CD ist. CI/CD steht für Continuous Integration/Continuous Delivery. Es ist ein Prozess, der das automatische Erstellen, Testen und Bereitstellen von Software umfasst.
CI / CD (Was ich verwende)
Techno Tim verwendet GitLab und GitHub für CI/CD. Er hat Runner in seinen Kubernetes-Clustern eingerichtet, um CI-Aufgaben auszuführen.
Alles andere, was ich selbst hoste
Techno Tim erklärt, dass er auch andere Dienste selbst hostet, darunter benutzerdefinierten Code für Bots auf Twitch, Twitter und Discord, Longhorn für Kubernetes-Speicher, Netboot.xyz für Netzwerk-Booten und Diagramm-Tools.