It's funny this video found me. I just purchased 3 of those Mini-Pc's 3 days ago, and now this is sitting in my video feed. I guess the algorithms are on the job.
I've been able to get my EQ12 to idle at 3W. The trick is making sure all of the ASPM features are switched on in the BIOS under the PCI options and putting in a quality NVME that actually supports ASPM (the factory does not). The result is the CPU steps all the way down into C10 state at idle which puts it at 3W. If idling at C3 state (before all of the ASPM work) it was 11W like you found. Wolfgang does a good video on this using 'powertop'. You can also update the PL1/PL2 TDP to 30W to get a bump of multi-core top speed. Between the above, repasting the CPU and changing the fan ramp-up profiles. All of this leaves you with a great, quiet machine that idles extremely low and ramps up when it needs to without ever heating the thermal limits.
Budget tip #574: Buy 8GB version of Beelink EQ12 + 32GB RAM stick. You can save some money especially when buying more nodes. Reselling the 16GB stick is not easy (and not worth it). I have 6 EQ12s in a cluster, fantastic little machines to play with!
the main question i have is, what do you use it for? hosting websites? hosting game servers? unless you are renting out these in form of k8 compute, its really hard to justify the cost.
Do I need a justification for a hobby? I use them to test different technologies: hypervisors, hyperconverged storage, high availability. Currently running vSAN cluster, purely for learning purposes. When I’m done, I’ll tear it down and build something else.
Hey there! Thanks for documenting the planning, setting up and workflows of your home lab in such a crisp, clean and easy to digest format with welcome explanations at all the steps of the way that could use them. Bonus points, and my personal favorite part, for taking power consumption into account and developing an economically sound, cost-critical view on components while at the same time accounting for performance and storage deemed necessary as well as 'Bang for the Buck'. I find this commendable, as it stands out in quite the niche, enthusiast market that usually caters to experienced hobbyists and (off-duty) professionals who often develop as much power- and feature-creep as they have access to disposable income. And, coming from a PC overclocking and custom water cooling design build background, I am somewhat familiar with the dynamics of that kind of nonsense. On that note, it's pretty easy and a lackluster achievement at best, especially nowadays, to assemble top-shelf components to an abomination of a lab that doesn't deserve 'home' in the name by a long shot, as it makes enterprise servers and networks look like retro gaming consoles at a high school LAN party, by comparison. Assuming, of course, one happily shoulders the power draw of a music festival at the local amusement park. So, once again, kudos that your content is nothing like it and therefore much more aspiring and relatable for the regular Joe like me, who just got his feet wet with self hosting Nextcloud locally and Word Press AiO in a Docker container. Funny enough, I actually use an old gaming laptop for that purpose, as you recommend. However, I'll try the Zima Board for the next project/s to play around with and host in one way or another. If you find the time, I'd be glad to learn what you think of this X86 SBC?
Thank you for the kind feedback! I actually have a video on the Zimaboard. It's a very interesting device, but personally I think the EQ12 (EQ13 now!) are more versatile
you not only inspired me to start my own homelab, but helped me setting it up. I've used your repo and could reproduce everything you did here. thanks a lot for the video!
I'd love for a whole series of homelab/networking videos where you hold our hand wayyyy more. I have a hard time with networking lingo and concepts especially ports and routing. Would love to see more!
Great in-depth and detailed explanation for setting up a cluster from scratch, especially nice that in the end you explained why you needed two additional charts to get the final pieces of the puzzle working. Thanks!
Wow. I've never made a home lab, and I had NO clue what was happening. But I'd really love a series that breaks this video into steps: 0. What is a home lab, why might you want one? 1. What hardware do you need for what you're wanting to accomplish? 2. What is NixOS and why is it special? Can you use Nix with a different OS? Pros vs Cons 3. What's kubernetes, why is it useful here, a quick 101-201 course video to help us understand what we're doing and feel confident making changes to our home lab as we follow along 4. What's a reverse proxy, why do we need a DNS, is Pi-Hole really just an ad blocker? Seems like a lot of work when I could just install a browser extension for that (again, I don't know what's going on in this video so there's probably a very good reason for it, and I'd love to learn more about the WHY) Would genuinely subscribe and listen for notification if I was told this is a series that's coming soon.
Nice to see more NixOS around! I am using colmena to keep a config of my nodes, so I don't need to SSH into them to apply changes to my NixOS nodes. Keep it coming!
We are really interested in a crash course about homelab computing. How is a cluster useful? What is the purpose of a DNS? Load balancer? Namespace? All of those questions are a search away, but a "getting started" video would blow up for sure.
Second this, I work in devops so I have some understanding of what those things are (I'm still a junior) and how they are useful in a company. But for personal use? I can envision a usecase for hosting your own movies and maybe website.
tbh, very limited you can learn from video like this, it's like a showcase of how he setup his home lab, to achieve that you need to learn lot of knowledge to has foundation to start to do same setup. From your question, can see that you're lack of very basic knownledge on computer networking, and it's more nightmare if you put your feet on thing like IaC as use Helm, complex system like Kubernetes.
I still need to learn more about how Kubernetes works, but I really appreciate your approach of setting up part of it, encountering an error, then fixing that error. Moving along in small steps, showing the error and how to fix it, I find really helps me to understand how the pieces fit together, rather than just giving a config file that works for you and leaving it up to me to figure out what I need to change for my environment.
I'm impressed by the homelabs people build. My homelab is a Dell Precision M4800 that runs Proxmox with a VM for Docker and an LXC for homeassistant. Docker runs cloudflare tunnel, nginx proxy manager, suwayomi, paperless, jellyfin and adguard.
I'll definitely go through concepts in more detail! This one was much for of a devlog/homelab log. I'm glad it inspired some interest though! Let me know if there's anything you'd like me to dive in more about and I shall do so :)
what makes it a bit "complex" is the fact that he is using kubernetes heavily, but in the end its all the same, DNS is DNS, TCP/IP and networking are the same, its just kubernetes introduces some new concepts to people not familliar but its not hard to learn and understand.. i would recommend some videos on kuberentes and helm on youtube then return to this video.
The rest of the video was good enough to excuse not saying "i-skuzzy". Took me a second to realize that MetalLB was required for DHCP since its layer 2 and would not be routed in or out of the cluster without an outside relay.
Great video, just note. You should never writte a secret in a nix things even if you don't use git. Almost everything you put in secret will end up in the nix stores so beware of leaving behind secret there
@@John-x3l7m I can't explain here the rabbit hole of nix encryption but basically you need to store in the nix store already encrypted secrets files and in your NixOS configuration a module that can at the start of your server decipher your encrypted secrets and expose them in some runtime temporary file only specific program can have access. Personally I use nix sops and sops to do that but like I said it's a rabbit hole and there more tools for the same jobs but here the ideas.
@@John-x3l7m nixos-anywhere has options --extra-files and --disk-encryption-keys which can be used to transfer secrets during installation. These are vital even if using sops-nix as it requires some sort of secret to decrypt secrets as well.
Tried a similar setup about a year ago for some light homelabe stuff I wanted highly available. This would have made the exact thing I was trying, much simpler. I got flash backs multiple times in this video. The iscusi dependancy abd fix, metal lb crds with nginx as the ingress, yea identical and this is cleaner still. Add cert manager and you'll have everything I needed at the time. If you plan on continuing with this project and series I'd be interested to see, meanwhile I'll take a look at you're other videos. Good stuff, nice work.
I find the amount of tools needed amusing: k8, kustomize, helm, helmfile, longhorn... I am not a devops of course, so I lost count and got lost haha One day things will be much simpler, I hope.
Yet people swear by this all day, every day, using easy and reproducible setup as the main argument... That is, until one of those components changes something and then good luck figuring out how to make it work. It's all fun and games until you have to actually manage a big and diverse production environment
@@JonybatPT to be fair, big and diverse production environments should not be managed by hand anyway and have an interfacing layer like ansible, TF, chef, puppet etc. That becomes fun again! Also heavily dependant on your definition of fun! As a DevOps engineer, this is exactly the types of challenges i like.
Man all these concepts are known to me but Kubernetes is its own beast... I've only ever used a Minikube instance to get Ansible + Ansible Tower running on RL, you make me interested in learning more for Kubernetes. If you ever do a series on it or even more Homelab beginners with glossing over the details for it I'm there
i'm impressed by the clear and concise instructions you give in this video. to be honest, the whole kubernetes with helm with helm charts with helm values with ingresscontroller etc, sounds like a lot of work to setup. it doesn't give me the feeling this setup is stable, but don't really know any details beyond that first look. It would be interesting to hear about the usual breakage scenario's, and how updates look like.
Insane video mate ! I don't know when youtube's algorithm became so accurate, but I am currently doing the exact same homelab using nix/k3s/helm/longhorn, but with 3 RPI (custom with usb ssd) and 1 "master node", and your video and resources are massively helping. Also the editing / commentary is very neat, great job. I would definitely enjoy watching more about your services migration and what you'll do with this lab !
I didn't understand everything in this video, but it was good to watch, and certainly something to refer back to when i want to learn more about setting up my own home lab. I subscribed to see more videos about this and what you do with this home lab in the future.
This is an excellent video! I really enjoyed it and learned a great deal. I aspire to reach this level and beyond someday. Please create more tutorials like this, especially on setting up security and using Cloudflare to access certain apps from outside.
Though in this video SATA is not being used I want to point out a warning with these boxes. There is a very similar box that will do the job too, the Trigkey G5. Both of them share exactly the same issue. Its the tiny flat connector cable for the SATA. If this is pulled even slightly, it will scrape off the metal on the contacts and will no longer work. I have had it with two of my units. My own fault for being clumsy but it is very easy to be clumsy as the cable is very short. Thankfully, the Trigkey guys were very helpful and I ordered 10 spares!
This was excellent. Although I would love to have seen the HA feature testdriven; perhaps builidng out the k3s stack and THEN upgrading the RAM & storage iteratively. I would also love to see cert-manager integration, as well as acme/letsencrypt.
I manage some Kubernetes clusters in the cloud and I learned a few things. Very interesting video. I bumped into your video 2 days ago because I did some searches on mini-pcs with n100 Intel cpu. I wanted to setup a Proxmox server with a Home Assistant VM as a starter. I also already copied some of your zsh config and moved my prompt from PowerLevel10Kto oh-my-posh (I already used it for powershell with the default config). To test some Kubernetes configurations without deploying to the cloud I use K3D (in WSL on my laptop). Nodes are docker containers. It worked well for my use cases, I managed to validate some istio (service mesh) egress load balancing setup. But yes it is not a permanent home lab setup...
Thank you so much. This video is absolutely amazing and just what I am looking for. I'm going to tear my k3s instance down and follow yours exactly, it seems to me, the correct way of doing things.
This is great! As a Framework user running NixOS, I'd love to see you do more content on the laptop and your setup specifically. Make it very simple if possible for people to follow and understand. This was honestly very interesting to watch - even though I don't know k8.
Great video and you have a talent to very cleary explain complicated concepts in a simple way. As a devops engineer working with this stuff daily I can say your setup is very nice and clean. But honestly I would not spend that much just to run a few containers! $200 worth of used laptops would be good enough for 10 times this workload. But I can also understand the desire to have a perfect setup. Looking forward to videos where you utilise that horsepower, maybe with Frigate and local LLMs?
I understood everything you just did and that’s honestly a fantastic process you laid out but I do NOT feel confident that I could do it myself. You ran into extremely difficult issues that I don’t know how I would have figured out on my own. Great video though.
@@dreamsofautonomy To be honest, even though it is simpler and easier to use, I feel like Ansible is a downgrade from NixOS, in regards to the control you have over the state of the machine. Nix allows you to rollback and specify the exact state of the machine, while Ansible only allows you to declare what you want to be performed on the machine, it doesn't give you any assurances that it is the state you wished for.
@@obvionaoe Aren't these different tools? I am not sure you can achieve the same ideas ansible can bring to a bunch of a machines while having good compatibility. But please explain if it's possible, I am intrigued to know.
@@areweevensomeoneoutthere the benefits of nixos being a declarative system, rather than a declarative tool used with a normal system, are the full system reproducibility (if you set it up right) and freedom from dependency hell (every program and library is installed to its own directory, allowing multiple installs of the same program/library) ansible is a great tool for reproducibility, but nixos can replicate all of ansibles functionality and a bit more
@@dreamsofautonomy I could watch a deeper dive on any of the individual services that you covered. Would love to have a better understanding of longhorn for example.
Thank you so much for this video! This pretty much exactly encapsulates my vision of what i am currently in the process of building! The helmfile and kustomize were two Lego bricks i felt like i was missing in my current attempt. I'm excited to see more!
Last week in office cleanup I was asking for 2-3 cpus and two guys from leadership gave me their own old cpus. I was thinking about setting a kubernetes cluster. Lo and behold your video comes now I know what to do this weekend.
I bought 3 firebats a while back. also mini pc's with N100 cpu's. I installed promox on all of them, there is a little overhead but it makes it easier to remotely manage them. This has the upside that you can use terraform to install vm's and such in a declarative way. Using this I installed Talos OS.
Highly relevant to my interests! I was dabbling with RKE2 but I'm not really in that mindset yet, so I think I'll go back to K3S. My nodes are running on RK3588 CMs, so I'm not sure if I can use Nix though. Will investigate further.
Loved the video after nixos anywhere I am lost but still saw the whole video at least I will sound smart when i will use the terms I learned here in front of my noobs friends. Hope to see many more videos in homelab series. ❤
Been there, done it. I would NOT use really small PCs, unless they are Enterprise grade (used, cheap) so you never have to worry about dangling cables.
We are rebuilding our Kubernetes clusters at work to use Talos, highly recommend a look! Its the first time servers i deployed on-prem truly felt lile cattle instead of pets. Terraform + Talos config + Helmfiles + Gitlab CI pipelines is life changing lol. I can deploy a full production ready cluster from Gitlab in a matter of minutes
We use tf and talos for our ka8s cluster as well. talos was definitely a bit of a learning curve, as it is a bit different than a more traditional distro.
@@solido888 yea learning to maintain the nodes in an API driven way is a learning curve for sure. But having essentially two config files to configure the nodes with a single command is wild. Plus the immutability drastically cuts down on maintenance required, and upgrading is as simple as changing the image in the file, and applying the config. It's great
i had a *fun time setting up pihole's recursive DNS server via docker on my NAS. in hindsight, recursive dns was a nice to have but not worth it for the extra container instability/troubleshooting during a reboot.
Great video, and a lot of cool ideas for me to now try over the next month or so. I setup a k3s "cluster" just this morning, the timing for this video could not be any more perfect. All I wanted was a postgres database for one of my side projects, so I just use an old rpi 3b that I had lying around and installed k3s on it just for fun. helmfile looks interesting though, I might give it a shot. I just made 5 different yaml configs to deploy postgres, followed a guide from digital ocean. A beelink eq12 cluster seems a little overkill for my use case, but I might add some more PIs to my cluster and then add kubernetes to my resume.
Hi, just so you know. You can use nixos-rebuild switch with remote host flag and switch to the new configuration from your pc without going to one of the small computers.
Great video! I would love to see a kube install of jellyfin with hardware acceleration. This is easy on raw-docker, but not so straightforward on kube.
Nice video! It’s nice to see some alternative choices. You could also check out rancher and harvester. I’m currently building a new homelab with rancher, Traefik (feel the pain), cert-manager, longhorn and metallb.
This is awesome. I also have own the Beelink EQ12. Really fantastic device. A thing to note is that you'll need at least a 6.6.x kernel to get the wireless interface(s) functioning. I wanted to use Ubuntu Server, but of course I purchased the device just before 24.04 dropped, so that meant more work. Instead I went with Pop! OS ... Definitely not ideal, but the machine is running pretty well. Next up, I would love to replicate what you've done here. We both need the rack-mount tray thing that "Techno Tim" used for his mini pc build. Though, he went with much more powerful Intel NUC machines.
Ohhh that's awesome I'm gonna check out the rack mount, currently I have both clusters in operation as I'm migrating and my tiny shelf is a mess. Good to know on the kernel as well! I'm pretty spoiled for ethernet runs so I forget to test out wifi capabilities!
personally I use Fedora CoreOS and configure it via Butane/Ignition works quite well for initial setup but fyi, CoreOS' philosophy is that you can just throw an instance of the OS away at any time and just recreate it that's why normally if you do changes to it you either use other tools (like Ansible) or if they are bigger adjust the initial config, nuke the old instance and create a new one
Talos definitely would have been a quicker way of getting to a Kubernetes cluster. My firewall provides DHCP, which sets the hostname for each of my Talos nodes. This means I can use a single config for all nodes, only diverting controlplane and worker nodes. If you take a look at the quick start docs - yes, it is actually this easy. But kudos for going the long way, it builds experience ;)
This is an amazing video on so many levels.. finally a knowledgeable peer that has a functioning brain and talks about interesting stuff without all the useless stuff (how to open your browser), bad advice (install via `curl | sudo`) and non-sense that ALL the other channels do. Thanks for existing Elliott, you just won a loyal subscriber. Also TIL systemd tmpfiles.. nice tip :) .. and that externa-dns supports pi-hole as a provider! neat! \o/
Exactly what I was looking to do on my homelab (except I'm using debian/terraform/ansible, instead of Nix/helmfile). Two small things missing I think : `ingressClassName: "nginx-internal"` in `pihole.yaml`, and remembering to configure the router to use pihole as the default DNS. Otherwise, thanks for the base config!
Something like argocd would be a very nice addition, instead of using Helm(file) you could have it deploy these helmcharts and kubernetes manifests continuously from a git repository. Very nice video, definitely seems like a fun project
Pretty dope! But just some remarks: with Talos you'd have spend much less time setting up your cluster (I totally get why you had done this, but still maintenance is a lot better on Talos), also you should check out the piraeus storage operator, it is muuuuch better than longhorn in terms of draining nodes, speed and maintainability as It's using drbd kernel module under the hood. (Talos has an extension for the kmod btw). Still great setup, I'm pretty jealous. Maybe try out kubevirt and hosting some VMs;) but you'll probably want to use piraeus/drbd for the storage then 😅, Longhorn is just hella slow
Definitely looking forward to trying out Talos in a future video! I'll be decommissioning my old cluster and using it for dedicated videos once I get everything migrated which should be end of this week! Kubevirt is also something I want to check out as well! So much fun k8s stuff to jump into.
@@dreamsofautonomy awesome! But really do try out Piraeus on that test cluster, it is much much faster and I am pretty confused why nobody is taking about it. Everyone's just using Longhorn and many complain about it's performance but still choose and use it
@@LampJustin Longhorn has been a thing for longer than Piraeus, that's definitely the reason. Most people prefer stability of a known tool over faster performance or extra features, especially when running services with high SLOs
@@obvionaoe while it's true that Piraeus is a younger project, the technology is not drbd is pretty dang old at this point and very much proven. Longhorn is known to have problems with lagging volumes that are out of sync, so slo is definitely worse. I also didn't mean for all people to talk about it, but I've seen no TH-camr talk about Piraeus.
I'm quite late to the party but yeah, Talos is way way easier to setup (if it works for you - as not every case is covered). Regarding storage in on-prem k8s, I would risk going with rook (ceph), it's even more mature than longhorn and it gives you cephfs which is quite nice solution, you could treat this cluster as highly available NAS but would require more disks
Awesome video. I do have a question: Why do you use Kustomize for a file that doesn't need any templating? Just use kubectl apply -f file.yaml instead of using kustomize and adding more complexity.
i did not understand anything past nixos but i still watched until the end
`!!`
literally me haha
same
Yup
I hear I'm supposed to like NixOS but I still don't understand it
It's funny this video found me. I just purchased 3 of those Mini-Pc's 3 days ago, and now this is sitting in my video feed. I guess the algorithms are on the job.
You got the beelink? Which model did you get?
This has been fantastic for my eventual migration off a Synology NAS onto a more dedicated box
I've been able to get my EQ12 to idle at 3W. The trick is making sure all of the ASPM features are switched on in the BIOS under the PCI options and putting in a quality NVME that actually supports ASPM (the factory does not). The result is the CPU steps all the way down into C10 state at idle which puts it at 3W. If idling at C3 state (before all of the ASPM work) it was 11W like you found. Wolfgang does a good video on this using 'powertop'.
You can also update the PL1/PL2 TDP to 30W to get a bump of multi-core top speed. Between the above, repasting the CPU and changing the fan ramp-up profiles. All of this leaves you with a great, quiet machine that idles extremely low and ramps up when it needs to without ever heating the thermal limits.
I'm going to give this a go! Thank you for sharing this!
Budget tip #574: Buy 8GB version of Beelink EQ12 + 32GB RAM stick. You can save some money especially when buying more nodes. Reselling the 16GB stick is not easy (and not worth it).
I have 6 EQ12s in a cluster, fantastic little machines to play with!
the main question i have is, what do you use it for? hosting websites? hosting game servers?
unless you are renting out these in form of k8 compute, its really hard to justify the cost.
@@DogeMultiverse Three control-plane nodes, three compute-nodes? It's always good to have options to try out different things.
Do I need a justification for a hobby?
I use them to test different technologies: hypervisors, hyperconverged storage, high availability.
Currently running vSAN cluster, purely for learning purposes. When I’m done, I’ll tear it down and build something else.
@@TheSoberPirate That's the same reasoning I used to justify a 4U storage-server with 160TiB usable storage and dual 10G fiber.
@@SnorreSelmer hahahah
Hey there!
Thanks for documenting the planning, setting up and workflows of your home lab in such a crisp, clean and easy to digest format with welcome explanations at all the steps of the way that could use them. Bonus points, and my personal favorite part, for taking power consumption into account and developing an economically sound, cost-critical view on components while at the same time accounting for performance and storage deemed necessary as well as 'Bang for the Buck'.
I find this commendable, as it stands out in quite the niche, enthusiast market that usually caters to experienced hobbyists and (off-duty) professionals who often develop as much power- and feature-creep as they have access to disposable income. And, coming from a PC overclocking and custom water cooling design build background, I am somewhat familiar with the dynamics of that kind of nonsense.
On that note, it's pretty easy and a lackluster achievement at best, especially nowadays, to assemble top-shelf components to an abomination of a lab that doesn't deserve 'home' in the name by a long shot, as it makes enterprise servers and networks look like retro gaming consoles at a high school LAN party, by comparison. Assuming, of course, one happily shoulders the power draw of a music festival at the local amusement park. So, once again, kudos that your content is nothing like it and therefore much more aspiring and relatable for the regular Joe like me, who just got his feet wet with self hosting Nextcloud locally and Word Press AiO in a Docker container.
Funny enough, I actually use an old gaming laptop for that purpose, as you recommend. However, I'll try the Zima Board for the next project/s to play around with and host in one way or another. If you find the time, I'd be glad to learn what you think of this X86 SBC?
Thank you for the kind feedback! I actually have a video on the Zimaboard. It's a very interesting device, but personally I think the EQ12 (EQ13 now!) are more versatile
you not only inspired me to start my own homelab, but helped me setting it up. I've used your repo and could reproduce everything you did here. thanks a lot for the video!
That's great! I'm very glad to hear that!
Finally someone making a tutorial who is encountering issues and not everything just rolls the first time !!!
I'd love for a whole series of homelab/networking videos where you hold our hand wayyyy more. I have a hard time with networking lingo and concepts especially ports and routing. Would love to see more!
Absolutely! I'll do some more homelab series!
Great in-depth and detailed explanation for setting up a cluster from scratch, especially nice that in the end you explained why you needed two additional charts to get the final pieces of the puzzle working. Thanks!
Wow. I've never made a home lab, and I had NO clue what was happening. But I'd really love a series that breaks this video into steps:
0. What is a home lab, why might you want one?
1. What hardware do you need for what you're wanting to accomplish?
2. What is NixOS and why is it special? Can you use Nix with a different OS? Pros vs Cons
3. What's kubernetes, why is it useful here, a quick 101-201 course video to help us understand what we're doing and feel confident making changes to our home lab as we follow along
4. What's a reverse proxy, why do we need a DNS, is Pi-Hole really just an ad blocker? Seems like a lot of work when I could just install a browser extension for that (again, I don't know what's going on in this video so there's probably a very good reason for it, and I'd love to learn more about the WHY)
Would genuinely subscribe and listen for notification if I was told this is a series that's coming soon.
neat to see some examples of k8s based homelabbing/self hosting!
Nice to see more NixOS around! I am using colmena to keep a config of my nodes, so I don't need to SSH into them to apply changes to my NixOS nodes.
Keep it coming!
We are really interested in a crash course about homelab computing. How is a cluster useful? What is the purpose of a DNS? Load balancer? Namespace? All of those questions are a search away, but a "getting started" video would blow up for sure.
I shall add this to my backlog!
Second this, I work in devops so I have some understanding of what those things are (I'm still a junior) and how they are useful in a company. But for personal use? I can envision a usecase for hosting your own movies and maybe website.
tbh, very limited you can learn from video like this, it's like a showcase of how he setup his home lab, to achieve that you need to learn lot of knowledge to has foundation to start to do same setup. From your question, can see that you're lack of very basic knownledge on computer networking, and it's more nightmare if you put your feet on thing like IaC as use Helm, complex system like Kubernetes.
@@ChaiRuou That's why, a getting started video could cover the standard concepts without using advanced tools
@@Otakutaru try look at devops road map 🙂
I still need to learn more about how Kubernetes works, but I really appreciate your approach of setting up part of it, encountering an error, then fixing that error. Moving along in small steps, showing the error and how to fix it, I find really helps me to understand how the pieces fit together, rather than just giving a config file that works for you and leaving it up to me to figure out what I need to change for my environment.
I'm impressed by the homelabs people build. My homelab is a Dell Precision M4800 that runs Proxmox with a VM for Docker and an LXC for homeassistant. Docker runs cloudflare tunnel, nginx proxy manager, suwayomi, paperless, jellyfin and adguard.
this is so awesome and exactly the kind of video i was hoping for from you. i'm here for all the homelab content all day.
I did learn nothing from this video - too complex 😅 but it did spark interest for trying kubernetes stuff myself
I'll definitely go through concepts in more detail! This one was much for of a devlog/homelab log. I'm glad it inspired some interest though! Let me know if there's anything you'd like me to dive in more about and I shall do so :)
@@dreamsofautonomy what are your thoughts on k3s vs Proxmox?
Relieved to see that I am not the only one.
@@dreamsofautonomy I thought longhorn was the Win Vista codename, but here it is what exactly?
what makes it a bit "complex" is the fact that he is using kubernetes heavily, but in the end its all the same, DNS is DNS, TCP/IP and networking are the same, its just kubernetes introduces some new concepts to people not familliar but its not hard to learn and understand..
i would recommend some videos on kuberentes and helm on youtube then return to this video.
😮 ngl the way the tooling is presented reminds me of the Microservices skit
The rest of the video was good enough to excuse not saying "i-skuzzy". Took me a second to realize that MetalLB was required for DHCP since its layer 2 and would not be routed in or out of the cluster without an outside relay.
Great video, just note. You should never writte a secret in a nix things even if you don't use git. Almost everything you put in secret will end up in the nix stores so beware of leaving behind secret there
so where do you put it?
@@John-x3l7m I can't explain here the rabbit hole of nix encryption but basically you need to store in the nix store already encrypted secrets files and in your NixOS configuration a module that can at the start of your server decipher your encrypted secrets and expose them in some runtime temporary file only specific program can have access.
Personally I use nix sops and sops to do that but like I said it's a rabbit hole and there more tools for the same jobs but here the ideas.
@@John-x3l7m nixos-anywhere has options --extra-files and --disk-encryption-keys which can be used to transfer secrets during installation. These are vital even if using sops-nix as it requires some sort of secret to decrypt secrets as well.
excellent video. So much new stuff! Looking forward to the next installment.
You can use avahi to broadcast hostnames to the network so you can refer to all nodes by their hostname and not have to remember ips.
Tried a similar setup about a year ago for some light homelabe stuff I wanted highly available. This would have made the exact thing I was trying, much simpler. I got flash backs multiple times in this video. The iscusi dependancy abd fix, metal lb crds with nginx as the ingress, yea identical and this is cleaner still. Add cert manager and you'll have everything I needed at the time.
If you plan on continuing with this project and series I'd be interested to see, meanwhile I'll take a look at you're other videos. Good stuff, nice work.
Thanks! I'll definitely be continuing with this setup and have added in cert-manager etc as well 😁. Should be more content coming out soon!
I find the amount of tools needed amusing: k8, kustomize, helm, helmfile, longhorn...
I am not a devops of course, so I lost count and got lost haha
One day things will be much simpler, I hope.
Yet people swear by this all day, every day, using easy and reproducible setup as the main argument... That is, until one of those components changes something and then good luck figuring out how to make it work. It's all fun and games until you have to actually manage a big and diverse production environment
@@JonybatPT to be fair, big and diverse production environments should not be managed by hand anyway and have an interfacing layer like ansible, TF, chef, puppet etc. That becomes fun again! Also heavily dependant on your definition of fun! As a DevOps engineer, this is exactly the types of challenges i like.
Bookmarks for the video would be a *really* nice thing to have. Such an awesome setup! Thank you for sharing it!
Great Homelab Setup Video, will also implement in my Homelab system
Man all these concepts are known to me but Kubernetes is its own beast... I've only ever used a Minikube instance to get Ansible + Ansible Tower running on RL, you make me interested in learning more for Kubernetes. If you ever do a series on it or even more Homelab beginners with glossing over the details for it I'm there
I most likely will be doing a series on Kubernetes on my main channel soon!
i'm impressed by the clear and concise instructions you give in this video. to be honest, the whole kubernetes with helm with helm charts with helm values with ingresscontroller etc, sounds like a lot of work to setup. it doesn't give me the feeling this setup is stable, but don't really know any details beyond that first look.
It would be interesting to hear about the usual breakage scenario's, and how updates look like.
Insane video mate !
I don't know when youtube's algorithm became so accurate, but I am currently doing the exact same homelab using nix/k3s/helm/longhorn, but with 3 RPI (custom with usb ssd) and 1 "master node", and your video and resources are massively helping.
Also the editing / commentary is very neat, great job.
I would definitely enjoy watching more about your services migration and what you'll do with this lab !
I didn't understand everything in this video, but it was good to watch, and certainly something to refer back to when i want to learn more about setting up my own home lab. I subscribed to see more videos about this and what you do with this home lab in the future.
I just got my framework 16 recently. Loving it so far :). ⚙️
never heard of helmfile until today, thanks.
It's pretty great for managing helm files without setting up any gitops or similar!
me neither! flux and argocd are everywhere but normally a bit much
Isn't HelmFile part of Flux? I run Flux on my Raspberry Pi based k3s cluster and it's fun and let's call it an opportunity to learn a lot 😂
As always nice and most importantly clear video. Thank you 🙏 also interested in part two
Can't wait to see your video on Talos Linux
This is a really nice channel.
I hope it grows.
This is an excellent video! I really enjoyed it and learned a great deal. I aspire to reach this level and beyond someday. Please create more tutorials like this, especially on setting up security and using Cloudflare to access certain apps from outside.
I mostly enjoyed how clean your UI looks.
Though in this video SATA is not being used I want to point out a warning with these boxes. There is a very similar box that will do the job too, the Trigkey G5. Both of them share exactly the same issue. Its the tiny flat connector cable for the SATA. If this is pulled even slightly, it will scrape off the metal on the contacts and will no longer work. I have had it with two of my units. My own fault for being clumsy but it is very easy to be clumsy as the cable is very short. Thankfully, the Trigkey guys were very helpful and I ordered 10 spares!
This was excellent. Although I would love to have seen the HA feature testdriven; perhaps builidng out the k3s stack and THEN upgrading the RAM & storage iteratively. I would also love to see cert-manager integration, as well as acme/letsencrypt.
I manage some Kubernetes clusters in the cloud and I learned a few things. Very interesting video. I bumped into your video 2 days ago because I did some searches on mini-pcs with n100 Intel cpu. I wanted to setup a Proxmox server with a Home Assistant VM as a starter. I also already copied some of your zsh config and moved my prompt from PowerLevel10Kto oh-my-posh (I already used it for powershell with the default config).
To test some Kubernetes configurations without deploying to the cloud I use K3D (in WSL on my laptop). Nodes are docker containers. It worked well for my use cases, I managed to validate some istio (service mesh) egress load balancing setup. But yes it is not a permanent home lab setup...
The DNS automation is huge! Thank you.
Thank you so much. This video is absolutely amazing and just what I am looking for. I'm going to tear my k3s instance down and follow yours exactly, it seems to me, the correct way of doing things.
Great video! As a follow-up, I'd be interested in more specifics on HA and disaster recovery, especially regarding Longhorn.
This is great! As a Framework user running NixOS, I'd love to see you do more content on the laptop and your setup specifically.
Make it very simple if possible for people to follow and understand. This was honestly very interesting to watch - even though I don't know k8.
Great video and you have a talent to very cleary explain complicated concepts in a simple way. As a devops engineer working with this stuff daily I can say your setup is very nice and clean. But honestly I would not spend that much just to run a few containers! $200 worth of used laptops would be good enough for 10 times this workload. But I can also understand the desire to have a perfect setup. Looking forward to videos where you utilise that horsepower, maybe with Frigate and local LLMs?
I understood everything you just did and that’s honestly a fantastic process you laid out but I do NOT feel confident that I could do it myself. You ran into extremely difficult issues that I don’t know how I would have figured out on my own. Great video though.
Devops engineer here. Ubuntu server + Ansible is how I roll, both for homelab and at work.
I'm envious! I've never been able to get into the mindset for ansible. Now I've got a spare cluster (my old one) I may find some time to give it a go
@@dreamsofautonomy To be honest, even though it is simpler and easier to use, I feel like Ansible is a downgrade from NixOS, in regards to the control you have over the state of the machine. Nix allows you to rollback and specify the exact state of the machine, while Ansible only allows you to declare what you want to be performed on the machine, it doesn't give you any assurances that it is the state you wished for.
@@obvionaoe Aren't these different tools? I am not sure you can achieve the same ideas ansible can bring to a bunch of a machines while having good compatibility.
But please explain if it's possible, I am intrigued to know.
@@areweevensomeoneoutthere the benefits of nixos being a declarative system, rather than a declarative tool used with a normal system, are the full system reproducibility (if you set it up right) and freedom from dependency hell (every program and library is installed to its own directory, allowing multiple installs of the same program/library)
ansible is a great tool for reproducibility, but nixos can replicate all of ansibles functionality and a bit more
@obvionaoe nix is great for the initial set up phase but ansible is good for controlling multiple servers
Great video! love how detailed it is
Your automation tools and workflow is amazing, really interested if you make like crash courses for the tools you used.
I understood maybe 10% of that, but enjoyed every second of it!
I'm glad! Is there anything you'd like me to do a deeper dive on?
@@dreamsofautonomy I could watch a deeper dive on any of the individual services that you covered. Would love to have a better understanding of longhorn for example.
Wow, I learned a few things and it gives me some ideas to try in my clusters
This seems fun, once i move to a bigger place i will definitely try to do something like this
Great video as always, boss
This is the first time your channel has been recommended to me, and I subbed before I even watched the video.
Thank you so much for this video! This pretty much exactly encapsulates my vision of what i am currently in the process of building! The helmfile and kustomize were two Lego bricks i felt like i was missing in my current attempt.
I'm excited to see more!
Great video, thanks for making! 🙏
Am curious to learn more about nix in upcoming videos
excellent video! I appreciate your CLI-to-video approach and you cover interesting content.
really fun video, homelabers dream setup 🙌
Perfect setup!
Im so jealous you had the knowledge to be able to execute this project. I would love to make your acquaintance and learn your background.
Wow, that's brilliant !
Overcomplexifying things that could be done with bachelor's degree networking knowledge.
Do tell!
Amazing setup
Last week in office cleanup I was asking for 2-3 cpus and two guys from leadership gave me their own old cpus.
I was thinking about setting a kubernetes cluster. Lo and behold your video comes now I know what to do this weekend.
How did it go?
Excellent! Thank you very much for sharing!
I bought 3 firebats a while back. also mini pc's with N100 cpu's.
I installed promox on all of them, there is a little overhead but it makes it easier to remotely manage them.
This has the upside that you can use terraform to install vm's and such in a declarative way.
Using this I installed Talos OS.
Highly relevant to my interests! I was dabbling with RKE2 but I'm not really in that mindset yet, so I think I'll go back to K3S. My nodes are running on RK3588 CMs, so I'm not sure if I can use Nix though. Will investigate further.
Loved the video after nixos anywhere I am lost but still saw the whole video at least I will sound smart when i will use the terms I learned here in front of my noobs friends. Hope to see many more videos in homelab series. ❤
Let me know if there's anything I can break down easier and I'll do some more dedicated videos!
Been there, done it.
I would NOT use really small PCs, unless they are Enterprise grade (used, cheap) so you never have to worry about dangling cables.
Thanks for the video! And bonus points for having the same laptop and keyboard as I do
👍
It's a great keyboard!
Very interesting. Thanks for sharing.
Good video!
We are rebuilding our Kubernetes clusters at work to use Talos, highly recommend a look! Its the first time servers i deployed on-prem truly felt lile cattle instead of pets.
Terraform + Talos config + Helmfiles + Gitlab CI pipelines is life changing lol. I can deploy a full production ready cluster from Gitlab in a matter of minutes
I'll definitely be giving it a go!
We use tf and talos for our ka8s cluster as well. talos was definitely a bit of a learning curve, as it is a bit different than a more traditional distro.
@@solido888 yea learning to maintain the nodes in an API driven way is a learning curve for sure. But having essentially two config files to configure the nodes with a single command is wild. Plus the immutability drastically cuts down on maintenance required, and upgrading is as simple as changing the image in the file, and applying the config.
It's great
i had a *fun time setting up pihole's recursive DNS server via docker on my NAS. in hindsight, recursive dns was a nice to have but not worth it for the extra container instability/troubleshooting during a reboot.
That's some overkill setup for a pihole ;)
Who all saw yesterdays stream,
nice thumbnail!
That was a fun stream! Crowd sourced design!
01:08 British accent and American plug. Brain went "huh?" 😀
Great video, and a lot of cool ideas for me to now try over the next month or so. I setup a k3s "cluster" just this morning, the timing for this video could not be any more perfect. All I wanted was a postgres database for one of my side projects, so I just use an old rpi 3b that I had lying around and installed k3s on it just for fun. helmfile looks interesting though, I might give it a shot. I just made 5 different yaml configs to deploy postgres, followed a guide from digital ocean. A beelink eq12 cluster seems a little overkill for my use case, but I might add some more PIs to my cluster and then add kubernetes to my resume.
Tks for your work!!!
Fancy, my homelab is just the alternative he mentions: an old hp laptop with ubuntu, decorated by my daughter with a lot of stickers
Hi, just so you know. You can use nixos-rebuild switch with remote host flag and switch to the new configuration from your pc without going to one of the small computers.
Oh this is awesome! Thank you for letting me know
@@dreamsofautonomy Happy to help mate.
This is the tutorial I wish i had a couple of years ago trying to figure all this out
Great video!
I would love to see a kube install of jellyfin with hardware acceleration. This is easy on raw-docker, but not so straightforward on kube.
I have it set up! If you join my discord and drop me a message I'll send you over my configuration.
This is the most alt way Ive seem of setting up high availability. To to it from scratch like this seem overly complicated but fun
Nice video! It’s nice to see some alternative choices.
You could also check out rancher and harvester. I’m currently building a new homelab with rancher, Traefik (feel the pain), cert-manager, longhorn and metallb.
I'll check it out!
MORE HOMELAB PLZ!!
Great video, would love to see the next episode. I think I prefer Ubuntu server though
As somebody with a CKA certificate and linux experience, i can confirm this video fits to a knowledged user level
This is awesome. I also have own the Beelink EQ12. Really fantastic device.
A thing to note is that you'll need at least a 6.6.x kernel to get the wireless interface(s) functioning. I wanted to use Ubuntu Server, but of course I purchased the device just before 24.04 dropped, so that meant more work. Instead I went with Pop! OS ... Definitely not ideal, but the machine is running pretty well.
Next up, I would love to replicate what you've done here. We both need the rack-mount tray thing that "Techno Tim" used for his mini pc build. Though, he went with much more powerful Intel NUC machines.
Ohhh that's awesome I'm gonna check out the rack mount, currently I have both clusters in operation as I'm migrating and my tiny shelf is a mess.
Good to know on the kernel as well! I'm pretty spoiled for ethernet runs so I forget to test out wifi capabilities!
personally I use Fedora CoreOS and configure it via Butane/Ignition
works quite well for initial setup
but fyi, CoreOS' philosophy is that you can just throw an instance of the OS away at any time and just recreate it
that's why normally if you do changes to it you either use other tools (like Ansible) or if they are bigger adjust the initial config, nuke the old instance and create a new one
Talos definitely would have been a quicker way of getting to a Kubernetes cluster. My firewall provides DHCP, which sets the hostname for each of my Talos nodes. This means I can use a single config for all nodes, only diverting controlplane and worker nodes. If you take a look at the quick start docs - yes, it is actually this easy.
But kudos for going the long way, it builds experience ;)
This is an amazing video on so many levels.. finally a knowledgeable peer that has a functioning brain and talks about interesting stuff without all the useless stuff (how to open your browser), bad advice (install via `curl | sudo`) and non-sense that ALL the other channels do. Thanks for existing Elliott, you just won a loyal subscriber.
Also TIL systemd tmpfiles.. nice tip :) .. and that externa-dns supports pi-hole as a provider! neat! \o/
Nix mentioned 🙏
Exactly what I was looking to do on my homelab (except I'm using debian/terraform/ansible, instead of Nix/helmfile). Two small things missing I think : `ingressClassName: "nginx-internal"` in `pihole.yaml`, and remembering to configure the router to use pihole as the default DNS. Otherwise, thanks for the base config!
You just got a new subscriber 👍
Glad to have you on board!
Something like argocd would be a very nice addition, instead of using Helm(file) you could have it deploy these helmcharts and kubernetes manifests continuously from a git repository. Very nice video, definitely seems like a fun project
I agree! I'll make sure to do more in this series
Great video! I know it's a bit off-topic, but I'd love to see a video of you showing how you setup your Hyprland, it looks so nice and clean at 5:00 😊
Absolutely!
Pretty dope! But just some remarks: with Talos you'd have spend much less time setting up your cluster (I totally get why you had done this, but still maintenance is a lot better on Talos), also you should check out the piraeus storage operator, it is muuuuch better than longhorn in terms of draining nodes, speed and maintainability as It's using drbd kernel module under the hood. (Talos has an extension for the kmod btw). Still great setup, I'm pretty jealous. Maybe try out kubevirt and hosting some VMs;) but you'll probably want to use piraeus/drbd for the storage then 😅, Longhorn is just hella slow
Definitely looking forward to trying out Talos in a future video! I'll be decommissioning my old cluster and using it for dedicated videos once I get everything migrated which should be end of this week!
Kubevirt is also something I want to check out as well! So much fun k8s stuff to jump into.
@@dreamsofautonomy awesome! But really do try out Piraeus on that test cluster, it is much much faster and I am pretty confused why nobody is taking about it. Everyone's just using Longhorn and many complain about it's performance but still choose and use it
@@LampJustin Longhorn has been a thing for longer than Piraeus, that's definitely the reason. Most people prefer stability of a known tool over faster performance or extra features, especially when running services with high SLOs
@@obvionaoe while it's true that Piraeus is a younger project, the technology is not drbd is pretty dang old at this point and very much proven. Longhorn is known to have problems with lagging volumes that are out of sync, so slo is definitely worse. I also didn't mean for all people to talk about it, but I've seen no TH-camr talk about Piraeus.
I'm quite late to the party but yeah, Talos is way way easier to setup (if it works for you - as not every case is covered). Regarding storage in on-prem k8s, I would risk going with rook (ceph), it's even more mature than longhorn and it gives you cephfs which is quite nice solution, you could treat this cluster as highly available NAS but would require more disks
Awesome video. I do have a question: Why do you use Kustomize for a file that doesn't need any templating? Just use kubectl apply -f file.yaml instead of using kustomize and adding more complexity.
Framework laptop flexed