My Homelab Setup: A Journey of Self-Discovery and Automation
I’ve always been fascinated by the idea of having a self-hosted setup, where I can manage my own infrastructure and services. It’s not just about having control over my data, but also about learning and exploring new technologies. In this post, I’ll take you through my homelab setup, which has been a journey of self-discovery and automation.
Why Self-Hosted?
For me, self-hosting is about independence and flexibility. I want to be able to choose the services I use, and not be limited by what’s available on the cloud. Plus, I’ve always been curious about how things work, and self-hosting allows me to dive deeper into the inner workings of the technology.
My Setup
My homelab is almost entirely comprised of Dockerized apps running on a single Lenovo ThinkPad T15 laptop, with an i7-10510U and 48GB of RAM, running Fedora Linux 43. Performance is pretty great, with all Docker apps using less than 10GB total RAM, and rarely using more than 10% total CPU. Temps are decent, too, with CPU core temps around 60°C (unless I’m doing a big Immich import – not a bad way to cook an egg).
Infrastructure
Here are some of the key components of my infrastructure:
- Homepage: my homepage shown in this picture, with dynamic linking to my Dockerized apps
- Nebula VPN: the overlay VPN that connects everything together, and allows me to access everything remotely
- Traefik / LetsEncrypt: everything’s proxied thru Traefik and generates TLS certs with LE, using DNS verification via AWS Route53
- Backrest: UI for restic backups – I have it snapshot every 2 hours, which is probably excessive, but it uses so little space overall that it’s easy to have it run like this
- Infisical: used for SSH key management/connectivity to my homelab hosts
- Pocket ID: auth I can add to non-authed apps
- Gitea: contains, among other things, my main “stacks” repo with contains all the Docker compose files
Selfhosted Things I Use A Fair Amount
Here are some of the self-hosted services I use regularly:
- SearXNG: has completely replaced all my searching on both PC and mobile
- Immich: I’ve completely migrated from Google Photos, having recently done an immich-go CLI import of my Google Takeout export
- Vaultwarden: has completely replaced my Bitwarden setup
- n8n: houses my automation workflows, two main ones are my daily weather and daily news
- ownCloud Office / Collabora: this was a bit of a pain to get set up, but less of a pain than other MS Office alternatives
Cool Stuff I Don’t Use As Much But By George I’ve Got It
Here are some other self-hosted services I’ve set up, but don’t use as much:
- Home Assistant: I’m still in the early stages of getting our smarthome stuff set up
- Proxmox: I have a physical Proxmox host, I just don’t do much with it yet
- HarborGuard: Docker image vulnerability scanning
- Seafile: just got this after I saw others recommend it, not yet sure if it’ll replace ownCloud for my file hosting
Conclusion
My homelab setup has been a journey of self-discovery and automation. It’s allowed me to learn new technologies, and have more control over my data. While it’s not perfect, and there’s still a lot to learn, I’m excited to see where this journey takes me.
—
Moja Konfiguracja Homelab: Podróż Samoodkrycia i Automatyzacji
Zawsze byłem fascynowany pomysłem posiadania samodzielnej konfiguracji, gdzie mogę zarządzać własną infrastrukturą i usługami. Nie chodzi tylko o to, aby mieć kontrolę nad moimi danymi, ale także o to, aby uczyć się i eksplorować nowe technologie. W tym poście, opowiem o mojej konfiguracji homelab, która była podróżą samoodkrycia i automatyzacji.
Dlaczego Samodzielna?
Dla mnie, samodzielna konfiguracja oznacza niezależność i elastyczność. Chcę móc wybrać usługi, których używam, i nie być ograniczonym przez to, co jest dostępne w chmurze. Ponadto, zawsze byłem ciekawy, jak działają rzeczy, i samodzielna konfiguracja pozwala mi zagłębić się w szczegóły technologiczne.
Moja Konfiguracja
Moja konfiguracja homelab składa się prawie wyłącznie z aplikacji Dockerized, działających na jednym laptopie Lenovo ThinkPad T15, z procesorem i7-10510U i 48GB pamięci RAM, z systemem Fedora Linux 43. Występowanie jest dość dobre, z wszystkimi aplikacjami Docker, które używają mniej niż 10GB pamięci RAM, i rzadko używają więcej niż 10% procesora. Temperatury są również dobre, z temperaturą rdzenia procesora wokół 60°C (chyba że wykonuję duży import Immich – niezły sposób na ugotowanie jajka).
Infrastruktura
Oto niektóre z kluczowych elementów mojej infrastruktury:
- Strona główna: moja strona główna, z dynamicznymi linkami do moich aplikacji Dockerized
- Nebula VPN: warstwa VPN, która łączy wszystko razem i pozwala mi uzyskać dostęp do wszystkiego zdalnie
- Traefik / LetsEncrypt: wszystko jest przekierowane przez Traefik i generuje certyfikaty TLS z LE, przy użyciu weryfikacji DNS za pośrednictwem AWS Route53
- Backrest: interfejs użytkownika dla kopii zapasowych restic – mam go ustawiony na tworzenie kopii zapasowych co 2 godziny, co jest prawdopodobnie zbyt często, ale używa tak mało miejsca, że łatwo jest go używać w ten sposób
- Infisical: używany do zarządzania kluczami SSH i łączności z moimi hostami homelab
- Pocket ID: uwierzytelnianie, które mogę dodać do aplikacji bez uwierzytelniania
- Gitea: zawiera, między innymi, mój główny repozytorium “stacks” z wszystkimi plikami kompozycji Docker
Samodzielne Usługi, Których Używam Dość Często
Oto niektóre z samodzielnych usług, których używam regularnie:
- SearXNG: całkowicie zastąpił moje wyszukiwania na komputerze i telefonie
- Immich: całkowicie przeniosłem się z Google Photos, wykonując import CLI immich-go z mojego eksportu Google Takeout
- Vaultwarden: całkowicie zastąpił moją konfigurację Bitwarden
- n8n: zawiera moje automatyczne przepływy pracy, dwa główne to moje codzienne pogody i codzienne wiadomości
- ownCloud Office / Collabora: było to trochę bólu, aby to ustawić, ale mniej bólu niż inne alternatywy dla MS Office
Fajne Rzeczy, Których Nie Używam Za Często, Ale Mam Je
Oto niektóre z innych samodzielnych usług, które mam, ale nie używam za często:
- Home Assistant: jestem jeszcze w początkowych etapach konfiguracji naszych urządzeń inteligentnych
- Proxmox: mam fizyczny host Proxmox, ale nie robię z nim zbyt wiele
- HarborGuard: skanowanie podatności obrazów Docker
- Seafile: właśnie dostałem to, po tym, jak inni polecili mi to, nie jestem jeszcze pewien, czy zastąpi ownCloud dla mojego hostingu plików
Podsumowanie
Moja konfiguracja homelab była podróżą samoodkrycia i automatyzacji. Pozwoliła mi nauczyć się nowych technologii i mieć więcej kontroli nad moimi danymi. Chociaż nie jest idealna, i jest jeszcze wiele do nauki, jestem podekscytowany, aby zobaczyć, gdzie ta podróż mnie zaprowadzi.