I just made my Homelab Open Source!
Vložit
- čas přidán 2. 06. 2024
- In this video, I'll be sharing some exciting news about my Homelab. I recently uploaded all my configs and code to GitHub, making it accessible for everyone to use as templates or inspiration for their own set-ups. I'll also be showcasing some interesting automation pipelines for testing and deploying projects. So let's get started and see what's new in my Homelab!
Related Videos/Links
GitHub Repo: github.com/christianlempa/homelab
• Let’s learn Git! Your ...
________________
💜 Support me and become a Fan!
→ christianlempa.de/patreon
💬 Join our Community!
→ christianlempa.de/discord
👉 Follow me everywhere
→ christianlempa.de
________________
Read my Tech Documentation
christianlempa.de/docs
My Gear and Equipment-*
christianlempa.de/kit
________________
Timestamps:
00:00 Introduction
01:08 Where to find my Repo?
02:38 Why do I use Git?
03:52 My Config Files and Manifests
09:20 Automation Pipelines
16:35 Future thoughts and projects
________________
All links with “`*`” are and/or include affiliate links. - Věda a technologie
This is so helpful and really highlights the spirit of FOSS. Kudos to you Christian!
Your videos have been a constant staple in my viewing, whether troubleshooting, researching, or just background viewing on something I'm curious about.
My largest issue with homelabbing is not having enough time to cover ALL the things I want in place. At work, I have a whole team that contributes and really helps distribute the burden allowing each of us to really dive into things we each like. This sense of collaboration is the largest thing I'm missing at home.
I never make resolutions for new years and think it's cliche and allows people to feel good about SAYING theyre going to do "X thing". However, I've made one, after all the viewing and use of FOSS, this year I'm going to find a project I love and try to contribute in any way I can, though I lack coding skills I'm sure there must be some way I can help!
Thank you for all the kind words! If you’re looking for projects to contribute, take a look at my „boilerplates“ and „cheat-sheets“ repo. I’d love to get some help working on this, and it doesn’t require coding skills 😊👏
@@christianlempa I just noticed this reply, as I've apparently been signed out of CZcams for some time!
I'll certainly have a look soon. Cheatsheets have been someting I've been working on at work a lot for my fellow engineers who are less Linux or Ansible savvy.
happy new year man! Thanks for all the content!
Happy new year to you too! :)
Happy New Year Christian. Thanks for all the videos you put up on CZcams 🙂
Thank you so much :)
Happy new year! Thanks for all the awesome homelab vids. Recently got Traefik running watching your videos. Can’t wait to see what you release in 2024
Thank you so much! :D
This is very cool. One of the things I am playing around with on the ansible side, is with passwords or encryption keys. You can use vault to encrypt the "string" and pass it in as a variable, or just put it in your playbook. I am playing with passing it in for more flexibility.
Thanks! Yep absolutely an important topic to look at
Happy New Year, great way to start a new one, thanks for all your hard work in educating us.
Thank you so much for watching 🤩
Some README files in the repo's subdirectories would be very useful to understand what each set of code is for. Thanks for sharing!
Hmmm good point, I'll think about it!
Happy New Year Christian!
Thanks you too 😊
All the best to you as well Christian. Health and Happiness always.
Thank you :)
awesome ! very good job and cool idea of sharing it ^^thanx Christian
Thank you! :)
Thank you for sharing, mate. You are helping to learn many new things. Really appreciated
Thanks for watching :)
Very cool . Thanks for the sharing !! Really appreciate it !!
Thanks for watching!
You are amazing. Love this idea and thank you so much for sharing your knowledge with us.
Thanks for watching!
Nice video Christian! realy like your videos! Its great to see what you've did this time. One question though, why use Terraform for creating VM's on your proxmox and not Ansible?
For me, Ansible is more for configuring and provisioning, terraform for IaC management and deployment
I guess this might become handy. I'm in the process of building a homelab, but the problem is that I have no idea where to start from with automation :D This means, appreciate you putting this public and keep up with your high quality content :)
thank you, i'll do :)
Awesome! Loved this video.
Glad you enjoyed it!
frohes neues Jahr!
dir auch! :D
Nice work Man!!!! THX 🙏🙏
Thank you!
Yeah Christian, sure, it will be your ultimate plan...GOT IT! ( joke xD) Nice video btw. In these holidays I worked a lot on my homelab, even if I know is just a provisional one. It would be interesting a video on the best practies for build an entire homelab from scratch, starting from a list of pieces of hardware and continuing then with the rest. I often find myself with the frustrating feeling that I'm doing something really cool, but terrified of doing it in the wrong order and risk missing steps or wasting a lot of time!
Thank you :D
This is fucking amazing. Ive just started my ansible journey! Thank you Christian!
Thank you so much :)
Happy New Year!
Thanks, to you too! :)
Would be interesting to hear about your personal reasoning of putting all this into a single repository. Because... there are many considerations ... like... independent units, independent CI, versioning, shared variables, ease of codebase navigation, cost of dependency upgrade and so on, so on...
I thought for a long time about this. If I'd be creating separate projects, I would use a different structure and put everything project-wise in a separate Repo, such as I do with my Cloud/Software Projects. However, if you consider my Homelab "one" project, I think it's okay to have it one, it also makes it easier to share, and collaborate.
Very well done
Thanks!
Thanks for making public!
A few suggestions. Please take as a grain of salt..
- generalize gh actions to apply to all docker compose or terraform projects (think: code generator)
- better yet: lean on Ansible for your deployment pipeline (even for running terraform) and use gh actions to trigger ansible, then u are ci-tooling agnostic
Mainly, you may want to think about orthogonality so that u don't have to maintain detailed gh action pipelines in addition to Ansible and terraform scripts. Ideally, pick one for your source of truth: Ansible, terraform or gh actions and the rest template out the former.
Thank you! Good suggestions, I'll think about it :)
Great video
Thanks!
Thanks Christian.
Thanks for watching :)
What local editor are you using?
I love the automation with scp and GitHub Actions!
thanks! I'm using vscode :)
Hey Christian -
Have been asking about code quality for sometime. Any chance you can show us how something like Codacy which is apparently plug and play…could help us find issues in our code.
Hey, no I'm not experienced with that tbh, my code looks like **** :D
Could You make a video about making one of those projects? A full start to end walk trough on how to let's say manage traefik this way.
For most of them, I've already made videos, so check out my channel. If I haven't done it already, be sure there's something in the pipeline :D
Great video.
I wonder if you separated your tasks, with docker since you have multiple server (prod-1, prod-2, ...). I would love to see, how to use multiple machines (computer) with docker. Since we can use raspberry pi (or orange pi). Separate things would be nice, because* of cpu/ram limitations.
- One machine for securities/proxies/databases/message brokers. (Ex: traefik, portainer, socket-proxy, postgresql, redis, ...etc)
- One machine for media servers (Ex: plex, jellyfin, Arrs, ...etc)
- One for something else (Ex: pihole, passbolt, vaultwarden)
- Etc...
Do we need swarm? Or kubernetes? If we already have compose files, for everything. What's the best way?
Good point! I think at some point in March/April it's time for a new Homelab Tour
Yesss
i got a qnap nas where i installded some docker containers: how could i manage a dns for my static addresses?
no idea :(
Are you specifying the projects which are WIP?
No, ideally I’d put the WIP stuff on a separate branch and merge it into the main when it’s complete. I think once I finished the packer/proxmox/terraform stuff, that’s how I do all future projects
Have a naive question, you have tons of container deployments across hosts. How do you keep track of the ports that are configured for each service in your compose files so you do don't accidentally spin up a new project with the same port as another which may or may not be running at that time
I never (or rarely) expose application ports directly on the host for my web apps, so it’s easier to keep track of all. But when I need, I keep a small table in Apple notes for my deployments, and where they’re located.
@@christianlempa May be I'm confused, most of the containers you have compose files for have host port mapping right? I understand that you use traefik, but still you'd need to keep track of every single port exposed to the host in order to not conflict? I'm not clear when you say you dont expose ports for web apps. How do you access them then?
@@rajivvishwa If you use a reverse proxy for all web interfaces (also useful for Let‘s Encrypt SSL), NO port needs to be exposed, except the 80/443 of the proxy. The proxy container just needs to be in the same network and can access all ports of the application container.
@@_TbT_ I do use reverse proxy where I map `rev-proxy-url:443` to `docker host: port`, in docker compose I expose the port that I need to redirect the reverseproxy to. I use nginx proxy manager. I dont know if it is different for traefik where it somehow figures out the host port to forward a url to without having to expose via docker compose. Let me read up on this.
Hey Christian,
thanks for the video.
I have a question for the deployment of proxmox with terraform cloud.
Is it now working or not from the repo?
When I build it up at home, it looks for me that the plan and apply will run in the terraform cloud, where it can't connect to the proxmox.
Have someone a working solution for this, or can't work?
thank you!
You're welcome! :) In terraform cloud there is a setting, where you want to execute it. You have to switch from default to "local execution" to make this work, otherwise it will try to execute the command in the cloud environment, which usually can't connect to your local proxmox api endpoint
@@christianlempa thank you very much this works :)
I was starting with the oldprovider for terraform. Have you maybe a solution for updated it to the new provider you use?
Fucking fantastic mate
Thanks 😂
Das Video ist super hilfreich, könntest du vielleicht ein aktuelles Video dazu machen wie du Kubernetes aufgesetzt hast / aufsetzt. Technisch verzweifel ich am Ingress service damit ich arcocd erreichen kann, wäre super! Und weiter so mit den guten Videos!
Vielen Dank! Ich habe dazu mal ein video gemacht, such mal nach k3s auf meinem Kanal, da wirst du bestimmt fündig :)
@@christianlempa Ah habs gefunden, vielen Dank!
HI good work. I installed the latest proxmox and TF crashes!! does that happen in your side? Thanks
there's currently an error, I'm currently testing with another provider, that fixes these issues. have a look at the github project
Hi Chris, im using proxmox 8.1.3 and telmate/proxmox not compatible with it, any work around?
No, I didn't have that problem, but I know that provider can be sometimes buggy and I don't know how well it's maintained anymore. Maybe have a look at the GitHub project and what other people might have forked to solve it.
Hi Christian, why did you decide to use terraform instead of vagrant?
they both do different things, vagrant is really just for local stuff, while terraform for remote/cloud/on-prem infra
Is it on purpose that all links are marked with a double star * and affiliate links are also marked with a single star *. That makes affiliate links kind of hard to spot.
I noticed that too.
Good point, I’ll update my template on future videos to make it easier to spot :)
3:30 Can you do a guide on how to setup this?
There will be a video about docker compose at some point in my docker course, so check it out :)
You might want to look at Atlantis for running terraform it's much cleaner and will feedback to your mr if you use them.
Since you are using Kubernetes, why have docker hosts?
Still love the simplicity sometimes :)
Hey, as a person who doesn't know much about homelabs. Could someone please explain what a homelab is and how it works?
The shortest explanation for a homelab is: a server you have physically at home where you deploy and run web services for your private/household use.
The server can be a small micro computer or old laptop or pc, or it can be a big server rack with many machines. It really depends on your needs.
The services and setups that people run are widely different, so I suggest you explore around.
@@ghosty_wan5943ohhh, alright. Thanks :)
github link?
Video description.
Excellent video except macos
lol, I guess I should say... thanks? :D
FIRST! :D
Nobody cares
wtf is homelab
I guess it depends on who you ask. But generally I would say that your homelab is one or more systems that you use to learn technology that you can then use for work or personal needs.
This often lead to self hosting. Where you stop using services from companies and use open source software and because of that you have full control over your own data.