Homelab Services Tour 2025 - What am I Self-Hosting

Techno Tim www.youtube.com

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.

Fasse jedes YouTube-Video in Sekunden zusammen

Hol dir Zusammenfassungen wie diese für jedes Video, in deiner Sprache, mit der kostenlosen Summ-App.

Laden im App Store
Jetzt bei Google Play

Transkript

Vollständiges Transkript von „Homelab Services Tour 2025 - What am I Self-Hosting“. Klicke auf einen Zeitstempel, um das Video an dieser Stelle zu öffnen. Du brauchst ein anderes Video? Nutze den YouTube-Transkript-Generator.

0:00 It's been another awesome year of self-hosting, and after sharing my Homelab hardware tour, many of you wanted to know what I'm running on all of that hardware. Well, you're in luck because today I'm breaking it all down for you. From dashboards to hypervisors for virtualization, a NAS with plenty of storage, five DNS servers, yes, five, segmented networks across multiple VLANs, reverse proxies, home security, media server, link pages, link shorteners, power management, and so much more. I'll also give you a sneak peek at the services that I'm keeping, the ones I'm replacing, and some big changes I'm planning this year. Spoiler alert, I've revamped quite a bit in the last 12 months, and 2025 will be no different. If you're into self-hosting services,

0:47 make sure to subscribe so that you don't miss any of my future updates. All right, let's dive in, starting with my networks. So I have a lot of Ubiquiti devices, so naturally, I'm going to use the UniFi Network Controller to manage all of my devices, and some of my cameras, and other things you'll see later on. But in here, you can see my network typology. Now, first, you can see my fiber coming in right here, and then that connects to my EFG, and that's my gateway into my network. That was UDM SE before this, but now it's an EFG. That might go back to something a little bit more home-friendly, but for now, it's the EFG, because I'm testing it. Then from there, downstream from there, I kind of have my core switch, and this is my switch aggregation pro, and I see there's a RX fault there, but I'll look at that

1:36 later. But this is my 10 gig switch, so all of my 10 gig devices connect into here, and then it uplinks at 25 gig. So down from this core switch, first I'll go this way, because this goes into my studio here. In my studio, my first switch is the Pro Max 24 PoE. That's right over there in a mini server rack for all of my workstations. And then from there, it connects to the Office Flex Mini, which is up there behind the TV, and that's there so I can connect all of those devices that are up there to a network and hard-wire them rather than using wireless. And then from here, it should go to this USW Pro Max 16 PoE, the little short one. That's actually on my workbench back there. I've unplugged

2:21 it because I'm tearing things apart back there and kind of redoing my office, but that should be plugged in. And then downstream from that are two of the 2.5 UniFi Flex switches. And those were there for testing and updating, but I'll probably remove those and use those somewhere else. So then if we go back over here again, downstream from my Switch Aggregation Pro, then I have my 48 port PoE switch, and this connects a majority of my devices. So downstream from this, let's just start over here, is my U7 Outdoor Pro. And that's outside creating a wireless bridge to my garage. And it's also giving me coverage outdoors. But it does create a bridge to the device bridge that's in the garage. And that's connected

3:07 to the PoE 8 port light, which gives it power and connectivity. And from here, this connects to a lot of cameras and maybe some more stuff in the future. And I did have this office workbench switch out there just for testing. But I removed it, I should probably remove it from here and reset it. But if we go to the next device downstream from my 48 PoE switch, I have the PDU for power management. I have two flex devices, those are the ones you saw on the wall. And that's just to give me more ports on the wall. Then I have a living room USW Ultra 210. And so this is a another PoE switch that's in my living room that's powering some cameras, it's powering a mini switch, the flex switch. And that goes behind

3:53 my TV for the Xbox and some devices up there. And then this also powers the U6 mesh, which is that small little access point that I have in my living room just for some more coverage. And to give my doorbell some more coverage. That's specifically why I got it. And then connected to there, you might have saw that U7 Pro on top of my server rack. I meant to mount that a long time ago, but it actually fits nice there. And it covers some of the devices above there and actually some of the devices outside too. So downstream from this, I have the USP plug really, it's just connected over wireless. But this is an IoT device from Ubiquiti that will automatically toggle my ONT on and off. If it detects a problem with my internet connection. Super handy. I've had it for years and it saved me quite a few times. We talked about the flex. So then next to here

4:45 is the U7 Pro Max and that's the access point that's right outside of my office. And it's the access point that a majority of the devices in my house connect to. It's central, it's the highest up, and it's a really good access point. So most of my devices end up connecting to this one. And that's it as far as topology goes. If you noticed, I have quite a few VLANs. I have one for cameras, one for guests, one for main, one for IoT, one for service trusted and one for untrusted. A couple of these went away because I made some changes. So here's my network setup or the way it used to be. So I have my default network where a lot of my devices are connected. This is where all of my networking devices live and all of my Ubiquiti devices live. And the only other devices that live there are devices that need access to all VLANs. So the camera VLAN, pretty self-explanatory. This is where all of my cameras live. And this VLAN is pretty special because I actually blocked the internet from this VLAN.

5:44 cameras shouldn't reach out to the internet anyways they should connect back to UniFi Protect but just in case for some reason they decided to go to the internet one day they're not going to be able to make it so that's what I do wholesale across this camera vlan because I don't want any devices on there to ever go out to the internet they have no reason to because I self-host UniFi protect here then there's the iot vlan which is for all my iot devices and it's also for things that I don't trust now I use the term trust loosely we'll talk more about what I do trust and what i don't trust and why I don't trust some things but I don't trust any of my iot devices so they go here and this is one thing that has changed my Kubernetes node isn't here I actually have a network adapter

6:30 here so it's not really a node so I'm going to take that off you'll be happy to know that I moved my wife's laptop off the iot vlan her work laptop I didn't have a great place to put it I threw it on the iot vlan but I've taken it off since then and this is where any device goes that I test I should probably have my own test vlan too that doesn't have access to the internet so that I can really test it in isolation just in case you know something was compromised or sent to me you know compromised but uh right now I test them on my iot vlan then there's the main vlan for everything that I trust and when I say trust it's not that I trust it with my life or anything like that it's more that I trust this device enough to sign into it to do taxes on it and to you know put my personal information

7:21 on that device now would I put my personal information on any of these iot devices like no and so that's kind of how I think about it I mean you know do I trust my home pods with my life no I don't obviously but do I trust them enough to talk to them or to sign in with my iCloud account yes I do uh so this is kind of where those devices live on this main vlan then I have a guest vlan for everyone who never comes over because I never have any guests it's true and here's one of the biggest changes from last year I'm not using servers untrusted anymore since setting up my co-location i moved all of my untrusted servers and some of my public services there so I don't self-host most public

8:10 services out of my house anymore so really this whole thing could go over here and then I could just basically say that hey this is this is my co-location over here so this would be home and this would be my colo over here so what I ended up doing was creating a site-to-site vpn between my co-location and my home so that some of my trusted devices can get to them directly and then this can serve out you know the services through the internet and this is how I ended up doing it I have home I have a site to site vpn not using tail scale that was one of my decisions and then my co-location and so I just traversed the network through a site-to-site vpn this is hosting a lot of my public services and then this is

8:57 hosting a lot of my internal home lab services here if you want to see some of the decision points and how things are organized I have a video on that the dashboard that I'm using is home page now I switched to this this year and home page is great for a lot of reasons one it has a ton of flexibility so you can customize this the way that you want it supports a lot of services as you can see a lot of them are connected here that's another point is that you can get data back from those services and present it here in a little card and it still does the simplest thing which is a link on this page to get to some of your services but one of the reasons why I like this the most is because it's all configuration based and what do I mean by that well you can configure everything about this dashboard in yaml now I know a

9:45 lot of people don't like yaml and they want a WYSIWYG editor that's totally fine but for me personally i'd rather do it in yaml because then my yaml file can be easily backed up and it doesn't require space on the disk where this is running that's really important for things like Kubernetes because now this runs stateless and you don't need to mount a volume to this container and then you could scale it as much as you want for example we saw my hypervisor column and then in here you could see all of my pve servers and then I had these variables in a dot emv file but you can see how simple it is I could copy and paste this a few times and get a few more Proxmox servers just by doing this then I have a containers column DNS column so on and so forth so I really like this way to configure stuff rather than using a WYSIWYG editor or drag and drop or anything like that

10:38 don't get me wrong they're lovely and they work great but for me I want to be able to repeat this super easy and keep this configuration say in a configuration store like Kubernetes my hypervisor of choice is still Proxmox and for a good reason Proxmox is a wonderful hypervisor not only is it open source and based on kvm but it also has a wonderful web gui to manage all of this it can scale and you can run it in ha if you want it can run LXC containers and you can run cef to have distributed storage across all of these hypervisors that you're running in your cluster so lots of great features many of them i don't even use but I do have four nodes in my Proxmox cluster now I actually have two Proxmox clusters I'll

11:28 show you the second one here in a second but this is my first cluster first up I have Storinator and for the time being I converted Storinator to a Proxmox node rather than installing something on it bare metal because it gives me all of the niceties from Proxmox like backups and all of that easy to connect to shares so I decided that hey I'm going to turn that into a Proxmox node and then I can run all of these virtual machines on here I think that's going to change I think that's going to change and I'll talk about that a little bit later in the NAS section if that's any clue but on here I have a lot of test machines I actually have a GitHub runner here I'll talk about that a little bit later I have three GitHub runners that run CI for some of my repos from GitHub when people open pull requests I have them running here locally I'll talk about it later but pretty cool that I can

12:18 run and execute CI from GitHub the public version and run those runners here locally and then I have five test K3S nodes I'll talk about that a little bit later and what they're for and then I have pbs running so Proxmox backup server running as a virtual machine I'll kind of dive into that a little bit later then some DNS servers and some other servers just for testing you can see I was testing Unraid here true nas it's wonderful that I can actually test other nas systems on Proxmox it's pretty awesome and this is Unraid I was actually passing through the usb key where my production version of unraid was installed and that was one quick way I was able to virtualize it was just plug in that key pass it to to the virtual machine and I didn't need to configure anything else so the next three nodes are those Intel nux you saw

13:06 that I said I have in a cluster and each of them are running similar VMs or containers that the other ones are running so for instance if I look at HA Proxy one on this node one or if I look at HA Proxy two on node two or HA Proxy three on node three so what I've done is spread these out for ha and on my one node for Proxmox I put all of my one guest machines the same for two and then the same for three so this really helps me coordinate shutdowns so for instance if I wanted to use Ansible to patch all of the three devices I know that all of the three devices live on this Proxmox node 3 so I'll run my Ansible command to update all of these machines and then I'll update the host so xing-3 and then I'll

13:55 reboot it and then they'll come back up and because this is ha for the most part these services will stay running and so I use that convention pretty much anywhere because I'll always know that if it's a dash or one it's going to live on node one node two and node three and so on and so forth um but HA Proxy this was for testing Postgres was for testing and then you'll see here I have my K8S home oh one and my K8S home worker oh one so this is one of my three Kubernetes clusters we'll talk about that a little bit later but this is the server node or the node that has etcd and control plane for Kubernetes that's the dash oh one and then the dash oh two on node two is also that role and the same for three on node

14:43 three this dash three is running Kubernetes etcd and control plane so those three nodes just manage this Kubernetes cluster in the state and the api and then on each of them I have worker nodes that pick up some of the pods that I deploy to them so as I deploy services through Kubernetes they'll just land on one of these nodes which nodes I don't really care as long as it lands on one of them and then if this node goes down you know it'll shuffle those around and continue on working my second Proxmox cluster is actually in my co-location so I move those three 1u servers to my co-location and each of those three 1u servers are running Proxmox and then within each one of these I'm running different VMs and LXC

15:31 containers that's a big change this year too so let's talk about these three again I have the same convention here node one as Postgres one HA Proxy one MongoDB one MySQL one Rancher one DNS one K8S public one and K8S public worker one it's a lot going on there and the same for two same exact thing and the same for three as you can see now I don't know if I mentioned this but last year I was running a lot of my databases in Kubernetes now there's nothing inherently wrong with running databases in Kubernetes if it's architected the right way I didn't architect mine the right way and the biggest takeaway from this is to not use a database in a shared service server so as you can see I have a lot of virtual

16:21 machines in here and a lot of things that are sensitive to latency databases are one and etcd is another and so I had databases running in Kubernetes on this host that's also hosting all of these containers and virtual machines so not a great mix if I had more machines what I would do is just dedicate a couple of nodes specifically to databases and let the databases run there then they don't have to worry about competing for cpu and io and network they could have their own dedicated per node so anyways I i learned a ton I learned that hey if I want to run databases in Kubernetes I need some more hardware or at least better hardware if these were all on NVMe it'd probably work which i'd love to do

17:08 in the future and I'm thinking about doing it but anyways on this first node I have Postgres sql so this is the first node in this Postgres cluster and if you want to see how to configure Postgres ha I have a great video on it doesn't use Docker doesn't use Kubernetes I called it Postgres sql the hard way kind of you know a tip in my hat to Kubernetes the hard way because this is really the step-by-step manual way of showing you how to do it for Postgres so if you need a database and something supports Postgres always choose Postgres it's great but anyways I have node 1 2 and 3 and this is ha I can shut this LXC container down and my databases will continue to run HAProxy is actually a proxy in front of Postgres to

17:54 kind of you know field those requests and send them to the nodes that are alive and the same thing I have 1 2 and 3 this 2 is actually down there's something weird going on where I can't start it so I don't know I'm gonna have to restore it or delete it I probably should have done that already but as you can see i mean one is down right now and HAProxy is handling it just fine one and three up actually with HAProxy you only need two nodes for high availability but that's besides the point I did three just because I have three nodes anyways that aside it runs great then I have Mongodb if you're not familiar with Mongodb it's really a no sql database and so it doesn't use sql at all it uses documents but it's pretty popular among javascript developers and for things that aren't relational actually

18:46 can do relational stuff now and at the same time relational databases can do schema-less or no sql type databases too with documents it's all crazy they're just intermingling now but anyways I use that for a lot of my external services and some of my internal services too so again I have three of them one two three this is ha could take one down pass it around and then you know one will get promoted and my services will continue to run same with MySQL full disclosure this isn't working exactly the way I want it to MySQL is a little bit harder to do than Mongo and Postgres so full disclosure this isn't fully working I'm not going to pretend like it is but eventually I will move my

19:33 my MySQL stuff to hear and you're probably saying to yourself right now why isn't he using MariaDB why is he using MySQL well MariaDB used to be a drop-in replacement for MySQL now they started diverging so MariaDB is doing some things that MySQL isn't doing and some services that I use only are tested with MySQL and I've already found some services that don't work with MariaDB and it goes back and forth you might find some services that were built and tested with MariaDB but don't work with MySQL db so we're in a weird situation right here and I don't blame the developers of those services they have limited staff and they can't test every single database and so

20:18 they're only going to certify or ensure that their service runs fine on the database of their choice so in the future I'm probably going to have a MariaDB database in here too uh as soon as I run a service that says they only test with that but anyways I plan to fix this I just haven't had time yet then you'll see I have Rancher Rancher 01 and then Rancher 02 Rancher 03 so this is my Rancher cluster we'll talk about it a little bit later but I have three Kubernetes clusters all managed with Rancher and these are the three VMs that help me do it next I have DNS01 so I have DNS01 uh so I have DNS01 I don't have DNS02 on two which is kind of weird so I should probably move it and shuffle that around uh but I have DNS02 and I have two DNS servers here I'm going to talk about what I'm using for DNS a little bit later

21:11 uh but just know in my colo I have my own DNS servers there too next I have K8S public 01 again this is a another Kubernetes cluster and this is for all of my public services my self-hosted services hosted services that I provide for people like you so my documentation some other stuff apis used to have wiki js but I have a lot of things out there in the public that I want to host and so those run on this cluster right here and then like my home cluster so the dash one dash two dash three are really for managing Kubernetes it's Kubernetes itself so it's etcd control plane are running on those three servers so it's managing the state of Kubernetes Kubernetes as well as having the api for kube control commands then I have three worker nodes one on each

21:59 Proxmox node and that's where all of my user services run so my documentation is running on there right now if you go to my documentation you'll actually get routed to one of three of these because I run three replicas so my documentation is ha and I run three replicas and there should be one on each one of these nodes so where you get sent to I don't know but I know it'll be one of the three and then i have you know templates other random VMs and you know all of my shares connected but this is my second Proxmox cluster in my co-location and since I was lucky enough to get a co-location and put my service there that's where I put a lot of my public services too and that's what helped shape my home network down so I don't need that untrusted server vlan anymore because I only have trusted servers there

22:49 because all of the public stuff that I'm hosting is in my co-location so so a lot of changes over the last year and more to come for sure that is a lot on hypervisors and a lot on Proxmox because I love Proxmox it's awesome but there's one more thing with Proxmox it's not Proxmox itself but it's Proxmox backup server so I use Proxmox backup server to back up all of my machines and this Proxmox backup server lives in a virtual machine on my machine back here at home the cool thing is is that I have it configured as a target for both my co-location machines and my machines here at home so you can see I created two data stores TrueNAS dc and TrueNAS home so TrueNAS that's the name of where the storage lives so it's living on

23:37 TrueNAS over nfs it's a little bit of a hack but it works great might change it in a little bit but not important I have a data store that's stored on TrueNAS for my data center and one for home and you can see I'm not too bad so the data center is using 504 gigabytes and home is using 2.62 terabytes now you can tweak your backups with garbage collection jobs prune jobs tell it how many you want to keep how many you want to let go and how often all of those jobs run but the cool thing about it is it de-duplicates a lot of this too so even though I have what 504 gigs that's used in this data store I think if i restored that it'd be a lot lot more than that because a lot of things are de-duplicated like

24:27 things in the os and stuff like that I think that's how it works but yeah it works great and if you're curious about what it can and can't do I got a short video on it just explaining an overview of how to do it and how I set mine up as for storage I'm using TrueNAS for all of my storage services that means smb nfs I scuzzy and even object storage and I'm running the electric eel version which means I have Docker for apps instead of Kubernetes but you can see some of my stats about my nas I have a 128 gigs of ram I have a pretty okay cpu in here it's a bronze Intel xeon it only has six cores running at 1.9 gigahertz now that's great for power usage it's a low power Intel if there's such a thing but

25:14 it's pretty good on power all things considered and I do need a xeon because I need all of those lanes could be amd but I'm just saying I need a server grade processor so I get all of these lanes for all of these devices in here so if you want to see how my discs are laid out I think we can go right here but i have five mirrors that are too wide so I have mirrored v devs and I have five of them so I have 10 14 terabyte drives in there and so I'm kind of losing half of my storage because I'm using mirrored v devs but I did that because it's easy to expand my pool by just adding two more drives and that's why i did it plus some performance reasons even though it's kind of expensive you know every time I need to add more storage you gotta buy two drives and I get half of that storage I decided that you know

26:02 that's best for me for right now kind of committed to this because I don't have a really good way to move that data off to something else you know I don't have 40 terabytes somewhere where I can move this off and then change my layout and move it back on so I'm kind of you know stuck with it for a little bit but there might be something in the future that could change to where I can do that so anyways but you can see I have a log v dev or my slog so I have a mirror two wide and that's a 112 gigabyte Intel Optane drives and I have those mirrored and then a cache drive which I probably don't need but I put them in there anyways I have two of those as well no spare v devs and nothing for dedupe so it's you know a pretty standard installation you can see here you know mirror mirror mirror

26:55 mirror and then two cache drives and then my log or my slog is also mirrored and I think I'm going to optimize this in the future and move my metadata off the main pool just so I can get some better performance when I open up folders that have you know hundreds of files I notice it kind of crawls but I do have folders that have hundreds of thousands of files inside of them so I think moving my metadata to a group of super fast drives that will help speed up some performance I don't know we'll see I have two 10 gig NICs on here and they're bonded and set up in a LAGG as far as applications go I only have one application running on here right now and that's Minio or Min IO and that's object storage and so if you think of things like S3 or Google Cloud storage GCS or whatever Azure

27:46 has for storage it's really just S3 or object storage and this is the open source self-hosted version and so this is really handy because a lot of my backups or a lot of my services at least in Kubernetes or containers they always like to back up to object storage which is awesome I agree it should be object storage and so I want to host that myself and so I host it with Minio now Minio used to be on TrueNAS proper it wasn't an application and then they took it off and now it is an application which i think is the right way to go too I'm most likely going to move all of my home production services here and that's something I'll talk about a little bit later too but the gist of it is I want something a little bit more simple for my home production I want to make sure that when I hit a

28:34 button for Home Assistant it's going to work I want to make sure that Plex is always up and running and the highest available of all of my servers is my nas if my nas is down there's big problems you know I do everything possible to keep my nas up and it should be always running in my environment and so since my nas is always running I figure some of my home lab services in my home production should run here too and by home production I mean all of the services that I need and rely on and depend on and my home lab stuff that runs on my knock and elsewhere are things that can be down and no one will notice that's kind of how i separate it if I'm running services and they're down and someone notices you know then I should consider that home production so I'm going to move all of them here another reason why I do it too is

29:23 because well I get easy snapshots I get a lot of caching and performance that I get from my TrueNAS stuff at least I think I do with TrueNAS I need to look into that but I've done so much to optimize my TrueNAS server and now that they have Docker it just totally makes sense to put all of my containers running here and I'm pretty excited for it I really am now that we're past hypervisors and backups now it's time for DNS the DNS that I am still using is PiHole I don't see any reason to change it anytime soon I know that UniFi Network can now manage CNAMEs and do DNS for you and there are other DNS systems out there but I'm super comfortable with PiHole it lets me easily create DNS records cname records and I can replicate

30:11 those across all of my nodes with Gravity Sync now I know that there are better things out there but i like PiHole and it works really good gives me easy way to disable stuff gives me an easy way to see which domains are being used gives me an easy way to block domains I get ad lists I get a lot of stuff and it works really really good so I don't see a reason to change I kind of want to keep things semi-simple at home because I'm a person of one so PiHole is just that for me it works great I can't complain and so the way that I have my DNS set up I have actually I have three DNS systems here at home so I have you know DNS1 DNS2 and dn S3 and then I use kube-vip to create a virtual ip for my second DNS it's

31:01 it's a little wild but there's a method to my madness so if you look at it think of this like this is my primary DNS so it's 192.168.60.10 and then the vip that keepalived creates is my second DNS that I hand out in my DHCP scope and so this one is actually .22 so let me label this one two three so the reason I did this is because these two right here are actually virtual machines within my home lab well if that big server rack goes down or I reboot my hypervisors or whatever the thing tips over or gets disconnected normally that would mean I don't have DNS but number three

31:51 will save the day because this is on the wall and this is a pi zero and it's running PiHole and this vip will still be up but now the traffic will be routed to here so it gives me a super simple low power way to still serve out DNS if my whole entire server rack goes down which it happens you know I need to reboot stuff or accidentally unplug stuff so that's why I did that but then to make matters even more confusing what I ended up doing in my co-location is spinning up two more PiHole servers and think of this really like four and five so this is what I was saying I have five DNS servers but what I realized is that if I have a vpn connection to these you know I might need to access the same DNS records here at home

32:44 and here in my co-location what I ended up doing is running Gravity Sync and synchronizing everything over so really one is my primary DNS and this is where I make all of my changes so I make all of my changes here then Gravity Sync will push these changes out to all of these machines so I had to do very little besides spin these up and set up Gravity Sync and just tell it hey number one is the source of truth so it's pretty awesome it shares lists shares DNS records shares c names so it works out really really good so this is why I have five DNS servers I think it worked out pretty good I mean you know this is like me hacking and homelabbing and trying to do a colo at the same time I think it turned out pretty

33:32 good I do wish that PiHole had first class support for this maybe in version two but to be able to run these you know in a cluster and be able to easily synchronize them would be great but in the meantime we have tools to do this so the only thing I have to keep telling myself is never make changes on any of these these always make my changes on one and those will replicate out so pretty fun it's been fun figuring out all this with PiHole it's pretty versatile as you can see for home security I'm using UniFi Protect huge fan of UniFi Protect it's such a great application and on top of that you know the cameras are relatively cheap for what you get and on top of that it's all local so all of this is recording local on my

34:17 nvr now I used to have that UDM SE that had one drive in there but I ended up buying an nvr and that has four drives so you can see that my storage capacity right now is going back 33 days it's pretty good I need to add another drive in here and I could probably get some more storage but 33 days for almost 10 cameras is pretty good you know and not only does it keep these recordings local but a lot of them have smart oh you can oh you can see right here I hooked a camera up to my 3D printer so I'm printing a spool right now and not only does all of this stay local I also get AI features like object detection and facial recognition and stuff like that with these cameras so huge huge fan of protect it just keeps getting better now containers are a huge topic so I'm gonna break this up into two sections first we're gonna

35:07 have containers or the engine that I use and run and then we'll have orchestration basically Kubernetes spoiler alert but with containers I actually made a big change this year and moved stuff back to Docker for a long time I was going all in with Kubernetes at home and since I was hosting things at home and since I was also hosting my public services at home it got pretty complicated pretty quick you know I always had to be sure that I was deploying things to the right vlan or to the right node to be sure that hey this is the public facing service and not an internal service and I did a pretty good job at it but I realized it was just getting way too complicated now I manage a lot of clusters at work and I still manage all of my

35:53 public services with Kubernetes those three clusters that I have and some of my home services but I decided that my home production now is going to be Docker along with less comPlexity there are actually less points of failure now too if you think about it with Kubernetes it could be one of any no those points of failure and so I ended up creating a virtual machine in Proxmox that has all of my containers running so this is my home production right now virtual machine running Docker on Proxmox

36:44 that's going to change here in a little bit and even though I'm showing you Portainer I manage all of this with Docker Compose now I use Portainer every now and then just to see how things are doing or to look at the logs but for the most part I SSH into that machine and then manage them there so there you can see I have my AI stack we'll talk about that a little bit later my Home Assistant stack still going to talk about that home page which we talked about Plex which we're going to talk about too Portainer, Scrypted we'll talk about Tautulli, Traefik, and Watchtower so these are all stacks that are running on that virtual machine but soon as I mentioned earlier I'm going to be moving all of these containers over to TrueNAScale so since TrueNAScale has containers now and has Docker support and not

37:32 Kubernetes I'm going to put all my containers there and I mentioned that earlier but I wanted to make it clear that I'll no longer have a vm running Docker on it I'm moving all of that to TrueNAScale and running that there so it's only one point of failure and that nas has pretty good uptime because if that nas is down there are lots of problems so lots of migrations still yet to come and for container orchestration I'm using Kubernetes how'd you guess but I am using Kubernetes I have three Kubernetes clusters we talked about a little bit earlier and I'm using Rancher to manage all of that so how does that work well I made a lot of changes to my Kubernetes clusters this year especially so my Rancher cluster is running RKE2 and it's upstream of everything else so if you think about it I installed

38:20 RKE2 then I started running Rancher on there and then from there I provisioned more clusters downstream so I have my home cluster downstream and I have my public cluster downstream but this is really cool about Rancher is that I can manage all three of these clusters right from here and so I have a single pane of glass to manage all of my clusters if I wanted to do something like make a single node cluster on my store nader after I move everything out of there which I might do I easily could a cluster of one give it all rolls and then I manage it here from Rancher so pretty awesome now I will say that i use this ui basically for read only this is just my dashboard to inspect things really quick or to quickly

39:06 kill a pod or anything like that but it's an easy way for me to see how my cluster is doing for mobile or from web without SSH-ing into those machines I use GitOps to manage the state of my cluster and I'll talk about that here in a little bit but I'm a huge fan of Rancher even if I had a cluster of one I probably would install Rancher on it just because I get so many features from it and I get so much visibility from it and it's so accessible through a website now I know a lot of people are going to say it uses a lot of resources yeah but I get a lot of use out of those resources I get a lot of value out of installing it and managing clusters and now I'm managing three clusters pretty soon it'll be four clusters and so doing it this way or at least provisioning those clusters with Rancher and having

39:52 them all report back to Rancher is awesome it's golden I love doing it and upgrades are super simple too but I do a lot of that with GitOps too so just think of Rancher at least for me as a way to create and manage new Kubernetes clusters and when I say manage I don't mean manage deployments I mean manage nodes add remove nodes things like that so in my home cluster are all of my home containers so it's some of the services you've already seen some that you will see and then it's a test bed for a lot of my other Kubernetes stuff public is where all of my public services are running so these are things that are publicly available to really anyone and then obviously as I mentioned a few time I have my Rancher cluster which manages the state of all of the clusters and it's an easy way to create new clusters you know for example if I wanted

40:42 to create a cluster I could click create there I could say hey it's going to be a harvester or a custom cluster custom is probably what I want I would choose my Kubernetes version RKE2 or K3S you know choose the one I want and then I would choose a unique name so I would call it test and then I would click create I'm not going to do it and then from there it would give you a couple cli commands to run on any Linux machine and they'll automatically join the cluster and give it the roles that you tell it so super easy to create a Kubernetes cluster once you have this running and the other kind of containers i now run are LXC containers so what are LXC containers well they're lightweight Linux containers that

41:28 actually share the kernel with Linux so they're not totally isolated but you can think of them as simple lightweight virtual machines that's the way I like to think about them but it actually shares the kernel the kernel with the host that it's on so super awesome super fast so if you don't like Docker containers or cri containers where you're basically isolating an application LXC might be for you because you can create an LXC container install what you want and manage it almost exactly like a vm but with a fraction of the resources so I talked about this a little bit earlier and what they are but my HA Proxy Mongodb these are all containers right here that I'm running right on Proxmox so super cool if you want an easy way to create containers or virtual machines you check out Proxmox helper scripts I have a video on it super

42:16 awesome if you're new to Proxmox it's great or even if you know everything about Proxmox it's still really awesome to be able to run these scripts to create a lot of these services so check it out I have a video on it so get ops is a huge topic and if you don't know what get ops is it's really just a practice that says that your git repo should be the source of truth and so what people like to do is create infrastructure as code so what they'll do is write code which is their infrastructure and they'll use a CI process to deploy that out to whatever the system is and so a good example of this is with Kubernetes so if i want to for example deploy home page right here in my home cluster this is how I do it I would commit this resource to my GitHub repo I would push it up and then there's a CI process that will deploy that and so

43:08 what you end up doing is not really managing your cluster through a ui or through manual convention you do it all through git so really your git repo becomes the source of truth rather than the cluster itself and this is why I was saying earlier with Rancher I don't make any changes in the Rancher ui i make changes to yaml deploy that yaml push it up in a commit and then the process will take over which is Flux and apply those changes so Flux is what I use for GitOps it's pretty awesome there's also ArgoCD which is really awesome I just got into Flux really early and so I'm still here on Flux I do want to check out ArgoCD I don't really want to rewrite a lot of this though for ArgoCD maybe I'll do it for

43:55 my public cluster because there's less running there but really cool I do wish there was GitOps for Docker it's kind of seems like an oxymoron doing production stuff with Docker Compose but I wish there was a way to do GitOps with Docker Compose because I think that would you know satisfy both of my needs uh for wanting to keep things simple and doing Docker and yaml but at the same time using my git repo as the source of truth and then having that deploy some way so it totally is something that no one should ever build but I would love it if someone did and then along with GitOps I actually use a tool called Renovate to help me manage my updates and it's really cool so I self host this thing from mend called Renovate and it's a bot that's running in my cluster and that bot will go out and check

44:43 and check some of the resources that I have and see if there are newer versions of those resources so for example if you could see on get home page I'm using version 0.10.19 but if we look at the last change right here you can see I got a pull request from techno boto that's my bot to make a change and this change is replace this line right here with this line and you can see the container image went from 0.10.6 to 0.10.9 and so it saw that there was an update in this container opened up a pull request and then I got a pull request from this bot and all I have to do is approve it that's what's cool about git ops 2 so after I approved and merged in that PR the GitOps process takes over and it will deploy the latest version of this container so it's really awesome I don't need to manage updates anymore

45:35 at least not in conventional ways I wait for a pull request from a bot that shows me not only the version but also some of the differences if there's differences in the chainsaw and then I get to decide whether I want to update it or not and I do that all from a mobile device or web page just saying yes approve and a couple minutes later you know I get the latest version of container so it's another reason why I love get us but I use Renovate to do that for my reverse proxy I'm still running Traefik now I think I have four instances of Traefik running so I have Traefik running on my Docker machine to serve all of my traffic over https along with certificates for all of my home and home production stuff then I think I have three or four instances of Traefik within Kubernetes and those are for different things like I have an

46:27 internal version of Traefik running in Kubernetes to serve traffic you know to me over the vpn versus out publicly and then I have another instance of Traefik that's used for a reverse proxy to serve that traffic out publicly with certificates now that's a lot of information and if you don't know what a reverse proxy is at its core a reverse proxy is a proxy that takes requests and will send those requests based on their http headers to downstream services if you think about it you could have your reverse proxy in front of different services like TrueNAS or Proxmox or Rancher and so that's what's handling those requests and as

47:14 they come in it will look at the header and see where it should be routed and then route it accordingly according to your configuration so you know it's a reverse proxy because if you think of a forward proxy you know everyone coming together and going through one thing well this is reverse it's everyone coming in and then going out to different things so I love Traefik I've been running it for a long time I run it in Docker now and three or four on Kubernetes it's great in the Docker version I use Traefik to get my certificates from let's encrypt using cloudflare let's encrypt and that works great for Docker in Kubernetes I'm using cert manager to manage my certificates and all that's really doing is saying hey Traefik isn't responsible for getting and storing my certificates cert manager is so cert manager will

48:05 actually do that it will go out request new certificates pull them down put them as configuration within Kubernetes and then Traefik can use those since it's a shared resource within Kubernetes so in Docker I use Traefik to get and manage certificates in Kubernetes I use cert manager to do it but then they're still used by Traefik so a little bit of nuance there monitoring and logging and I wish I had a better story for this so last time I was saying yeah I want to do more monitoring logging don't we all and at that time I was using Uptime Kuma to monitor some of my services especially my internal services and now that my internal services are kind of all spread out I took down Uptime Kuma and I'm not actually

48:54 monitoring anything internal I know that's bad I wait for someone to scream but for external services I monitor all of those with uptime robot so I don't need to worry about my public services being monitored I still want to monitor some of my internal services now I did stop using Uptime Kuma even though it's great had nothing to do with it itself although it does get slow sometimes I mainly stopped using it because it uses a sqlite database and that sqlite database required storage in Kubernetes which is kind of a nightmare and that storage would either get corrupted or that storage would disconnect from my pods and it would be down so the last time I used it it did get corrupted and I said I'm not using it anymore

49:40 so now that it's going to Docker and it's going to live on my nas yeah I'll probably end up using it again it's just that Kubernetes made it a little bit complicated and I think there's a version of uptime kuma now coming that uses MariaDB which I'm excited about because it means the state of your Uptime Kuma now lives in a database versus a sqlite database that's on disk so much better architecture coming in the future looking forward to that I did use Gatus for a little bit and it's a great monitoring system a little bit different than Uptime Kuma I think it has more of a developer lens on it but the nice thing about Gatus is that it's stateless so you manage all of the configuration and code with yaml and that will configure all of your uptime monitors that way so you're not doing it through a ui so pretty cool for

50:29 Kubernetes because you can use a config map for the configuration and then it's totally stateless and then you can scale it and you don't need to worry about storage but since I moved a lot of my home prod services out of my home Kubernetes cluster I didn't have a use for Gatus for monitoring internally anymore so anyways a lot to figure out there if you want something that's cool and different Gatus is the way to go I have a video too for data visualization I'm embarrassed to say I'm not using Grafana now I've used a lot of those tools at work in the past and I kind of decided that I don't want to use those tools here at home too now I might set those up for my co-location because that's a little bit different that's running Kubernetes but for here at home I ended up finding out that Home Assistant is actually

51:17 really good to monitor and visualize some of your services at home now I'm not talking about monitoring the temperature or humidity in your home lab I'm talking about monitoring things like Proxmox TrueNAS Docker you name it as a quick example I set up a quick dashboard with Plex with PiHole with TrueNAS and even some of the services that are running on TrueNAS and I can manage it all from here so if I wanted to turn FTP on and off right here I could or if I wanted to see who's watching something on Plex I definitely could or to see PiHole or quickly toggle it off to get around the PiHole blocking system and then toggle it back on when I'm done so there are lots of services that are already

52:03 compatible with Home Assistant and a lot of these do charting too for instance I created a network dashboard and these are all of my network devices so my efg my access points my switches and you can see right here I created this little chart to see how many clients are connected to each one of these wireless devices so on this one there's 13 on this one there's 26 and on this one there's five and there's a lot you can do this is only kind of scratching the surface I think I might continue to use this uh really because it puts all of this data in Home Assistant which I'm already using and I have an app for it so pretty cool I'm going to see if I can make some pretty cool dashboards too I have a video on this covering all of this it's it's really cool if you want to use Home Assistant for something like

52:52 that um it's definitely better than nothing is it as advanced as Grafana and loki no not at all and I'm looking for simplicity along with a good user interface and so Home Assistant gives me all of that so speaking of home automation all of my home automation is running on Home Assistant one of the biggest changes I made this year was moving it out of Kubernetes and into Docker and then this year I'll be moving it from a Docker vm on to TrueNAS itself but Home Assistant need I see more I mean I can remote control everything in my house I keep adding more and more things to Home Assistant and it seems like every day there are more and more services that are being added you can see a list of services that

53:37 i have configured here and some of the entities that I have configured and then from here you can see quite a few devices that are connected so my goal is to connect everything to Home Assistant and then if I need to do things downstream from there I will what do I mean by that well my wife and I use a lot of what do I mean by that well my wife and I use home kit and it's nice to have you know the home app on apple or tell Siri to do stuff and the way that I do that is connect all the devices to Home Assistant first and then expose them to home kit with home kit bridge and so all of the non-certified devices I can get into here and expose them as certified devices so that gives us some more automation like with apple TVs or Siri and stuff like that uh but for the most part I try to get everything in Home Assistant first and I've been managing some of

54:23 my more comPlex automations here so yeah last year it was only kind of being used for a few things now everything's in here I mean you can see my 3D printer is in here right now I mean that's that's how far it's going so I am going to continue to use this more and more like I said not only for home automation but for some of my monitoring of some of my home lab services so really cool I love Home Assistant it just keeps getting better and better I talked a little bit earlier about home security and I just talked about home assistant and there's kind of something that's in between which I use which is Scrypted so Scrypted can be an mbr but the way I like to look at it is it's a system or an interface that allows you to connect most any camera to most any hub and what do I mean by that well I have my cameras provided by UniFi right

55:17 UniFi Protect and they're not home kit certified which means they don't integrate with home kit at all so when someone presses the doorbell I don't get a notification on apple TV or on Siri or anything like that and so what Scrypted can do is connect all of your cameras to a hub of your choice now I know it can connect to home kit I think it can Google Home Alexa and a lot of these are supported and a lot of different camera systems are supported so anyways I use this to get those video feeds into there for other reasons but I use Scrypted to do it it's open source it's awesome Scrypted can also be used as an mvr too so really cool piece of open source software for a link page I use my link page still and it's Little Link and this is an open source project that I host on GitHub a lot of people have contributed to

56:07 it but if you ever find yourself needing to host a bunch of links you can do it with this it's a Docker container that runs super small lightweight and it's all configurable with environment variables so you have to do very little pass in a couple environment variables and you get buttons that you can click on to go different places for a link shortener I still use Shlink now Shlink is open source self-hostable and I can create a whole bunch of urls and then shorten them with my custom domain you don't know what I'm talking about think bitly but self-hosted open source and hosted within my infrastructure you can create as many links as you want and send them wherever you want and you also get some counts and metrics about those links I've looked at a lot in this space and this is the most

56:56 modern and I think the most well architected system that's out there uses Postgres on the database they've separated the api from the client like this is production ready and I use it in production and so most of my links that you see the l.technotim.live.docs will take you to my documentation page and so that's helpful if I ever need to change a link let's say one day I don't want to host my docs on technotim.live anymore change that boom it's done everywhere so it's great to run even if you need to manage just a few links for my media server I'm using Plex I don't need to tell you how awesome Plex is but i think it's really awesome especially for recording live TV and over the air TV and I've been doing that for for many many years going back to windows xp media center edition so I have a long history of recording

57:44 over the air TV and I do it here too so that hd home run quad gives me four tuners or four separate channels if you will to record different channels within Plex and I can also stream up to four although i only use one the other cool thing about recording TV is that you can skip commercials it'll look for commercials and you can either cut them out or skip them I usually mark them as skip which makes watching the things I want to see that much better because they don't have commercials and then this also saves me from getting subscriptions to other services like Hulu or Peacock this used to be running on a bluetooth virtual machine then I moved it to Docker then it was running on windows now it's back on Docker on a virtual machine but soon I'm going to move it over to my nas along with everything else for power

58:33 management I'm still using NUT Server now I use NUT Server to manage three of my ups so I have a Tripp Lite UPS as you can see here I have my apc backup that's on the wall and then I have an Eaton UPS that's in there too and this is this device here now it's really nice because it's hard to see this data otherwise and the other nice thing about NUT Server is that you can coordinate shutdowns now I used to do that but a couple of times it didn't work out so well so I've kind of eased back and I disabled that feature of NUT Server but it's there if you need it say for instance you want to shut down a machine safely when there's only 10% battery left you can totally do that but NUT Server is a great way to look at your ups and see how it's doing at a glance I do wish there was something newer

59:23 than NUT Server and there kind of is there's this self-hosted service you could run called Peanut and what it's doing is something I like which is giving a modern facelift to NUT Server itself and we could see my different devices that I was just seeing in NUT Server you can switch between them and it will plot out all of this data on this chart the one thing though is that none of this data persists so you'd have to keep this open for a really long time and I hope in the future that some of this data gets persisted maybe to a database or something like that so we can see all of this data over time because it's only good for right now like I said unless you leave it open then you'll see it plotted but still this is a great start to making a more modern version of

1:00:10 NUT Server content management systems I think last year I had three so I was running Wordpress I was running Ghost blog and I was also running wiki js now I'm down to one I wanted to get down to one and the way that I did it was by shutting down two of the three so I did shut down my Wordpress blog because a lot of it was redundant with what I'm doing now on my documentation so I shut that down and I was actually glad to shut down Wordpress because it's kind of a nightmare to manage and then I shut down wiki.js we were using it in our Discord server for a while but then they released version two and there was no upgrade path and I think we all just kind of stopped using it so since it wasn't getting any use with our Discord server I

1:00:57 did retire that and so the last one that's up in my environment is Ghost blog and that's for my wife's portfolio so only one cms system and it's Ghost blog which I think is the best out right now as far as static site generators go I'm running two still so I'm running Jekyll and I'm running Hugo now they're kind of the same they're both older tools but the idea behind a static site generator is that you write markdown and then it will generate mark up for you so for instance with my documentation site all I need to do is write these articles in markdown save them and then when it generates the markup you get nice looking articles like this and they're great if you're not a designer or not really good at creating

1:01:43 uis because you can just focus on the content that you're writing and then the markdown generator the markup generator will make it look nice for you and also I like managing even my documents as code so I write this as code it runs CI CD against it it transpiles or generates the markup for me and then it puts it in a container and then it puts it out in the public web actually in my Kubernetes cluster and then it's out in the public web and then I do some stuff with globflare tell it to flush the cache but again I have CI and CD for this too and I like doing it this way because it lets me manage my content as code speaking of CI and CD I'm actually using two solutions right now so CI is continuous integration

1:02:32 and CD is continuous delivery so what does that mean really they're just concepts if you think about it continuous integration basically says like hey we're gonna continuously integrate what you're working on with the rest of what everyone else is working on so if you think of this like code it's like hey you work on your own branch at some point you want to merge that branch into the main branch and that's when your continuous integration would run and so you might run tests you might build containers you might do anything you want to do but that's the continuous integration piece and then on the delivery side a lot of people think of it like deployment it can be deployment but on that side you're delivering some value now that could be an updated website some features it could be dropping off you know a zip

1:03:20 file somewhere it's really up to you and there really isn't a great definition for it at least as far as what you deliver and so really it's just automating that entire process of building testing and delivering some content or delivering software to someone else so I use two solutions for that I use GitHub and GitLab and GitLab those are source control systems but with each they now have CI integration I mean GitLab's had it from the beginning I'm getting and so GitLab has pipelines and runners so when I commit code at least specific code in my private GitLab i have runners that will pick up that job and run the CI tasks and so those runners are hosted in my

…

Share

Weitere Video-Zusammenfassungen