Home Lab Setup

Omdat ik toch iets meer wil focussen op mijn home lab dacht ik dat het een goed plan is om een uit eenzetting neer te schrijven van mijn home lab. Het is niet de meest uitgebreide maar het is toch mijn speeltuin.

Zoals het hoort draait mijn home lab op Linux.

Hardware:

Hosts

Voor mijn hosts ben ik gegaan voor materiaal dat ik thuis nog had of kon meekrijgen van het werk. Dit wil zeggen dat mijn originele PVE host al meer dan 10 jaar oud is (aankoopdatum 1 juli 2014). Ik heb dan maar beslist een jaar geleden dat mijn originele PVE host een andere taak mag gaan uitvoeren binnen mijn home lab. Dus heb ik hier mijn back up storage van gemaakt door er TrueNAS scale op te installeren. Echter had ik dan wel een nieuwe PVE host nodig. Hiervoor heb ik dan een oude workstation gebruikt een kwestie van het materiaal een 2de leven te geven.

PVE02:

  • CPU: 8 x Intel(R) Xeon(R) CPU E5-1620 v4 @ 3.50GHz (1 Socket)
  • RAM:79GB
  • Storage:
    • Boot disk: 256GB NVME SSD
    • DataStore: 3TB x2 in RAID 1

TrueNAS:

  • CPU: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
  • RAM: 16GB
  • Storage:
    • Boot disk: 256GB sata SSD
    • Datastore: 3TB x4 in RAIDZ1

Firewall

Mijn firewall is een zeer oude Fortigate 60D die ik heb gekregen van een collega voor mijn eindwerk. Dus om dit nog echt een security device te noemen is misschien veel gezegd maar ik heb een 60E op de kop kunnen tikken. Dus ben op het moment van schrijven vol op bezig met de migratie naar mijn nieuwe firewall. Na deze forti zou ik graag willen overschakelen naar een opensense. Dit omdat Opensense veel meer updates krijgt en betere hardware ondersteuning heeft.

Ik maak ook gebruik van verschillende VLAN’s:

  • Guest > 192.168.1.0/24
  • IOT (Ongebruikt) > 172.16.6.0/24
  • Main > 172.16.1.0/24
  • MGMT > 172.16.4.0/24 (management)
  • Reverse proxy (ongebruikt) > 172.16.8.0/24
  • SRV > 172.16.3.0/24

Ik maak ook voor elke VM een MAC reservation. Het IP van de VM is ook altijd de ID van de VM. Mijn MGMT netwerk benader ik via mijn eigen Desktop. Dit doe ik door alleen mijn IP van mijn desktop toe te laten naar bepaalde netwerken wegens gebrek aan een betere manier. Ik had ook nog een SSL VPN via mijn firewall maar deze heb ik spijtig genoeg uit dienst moeten halen wegens de vele Common Vulnerabilities and Exposures CVE’s dat het al had verzameld. 😅. Dus nog steeds geen security device.

Switchen

Mijn switchen zijn hetzelfde verhaal als mijn firewall & mijn hosts. Ik heb ze gekregen op mijn werk. Dit zijn zeer oude toestellen. Ik vermoed van sommige of ze nog gediend hebben voor Napoleon. Het vreemde dat ik ook heb met deze oude HP/ HPE switchen is dat ik ze niet in mijn managementnetwerk krijg. Dus het is altijd een hele uitdaging voor hier aanpassingen aan te doen. Mogelijks is het ook meer een ik probleem dan de switchen. Op termijn zou ik ook deze swithen willen vervangen door Unifi switchen. Cisco of Ruckus is wat duur.

Switch Device name IP Location
hpe 1800-24 (J9028B) SW01.local.sysadminnotes.be 172.16.4.3 Berging
hpe 1810 - 24 (J9803A) SW02.local.sysadminnotes.be 172.16.4.4 YDH kamer
HPE officeconnect 1820 SW03.local.sysadminnotes.be 172.16.4.5 Bureau

Access points

Mijn AP’s zijn 2 Unifi LR’s. Deze dekken mooi heel het huis waar ik momenteel in woon. In de tuin is de dekking niet volledig maar dit moet nog eens bekeken worden. Één van de AP’s bevindt zich helemaal beneden in de berging waar de modem/router staat en de andere staat helemaal boven op de zolder.

Deze AP’s stralen momenteel 2 SSID’s uit: het main & gasten netwerk. Ooit komt hier misschien nog een IOT netwerk bij maar hier bestaat momenteel geen nut voor. Bij nader inzien komt het IOT netwerk toch sneller dan verwacht. Dit zodat mijn chromecast & de GSM’s op dit netwerk kunnen. Dit omdat ik niet 100% vertrouw dat mijn chromecast niet in eens gekke dingen gaat doen.

Iets dat ik wel altijd doe voor ik mijn AP’s update is opzoeken wat de reacties zijn voor deze update. Hier is een Reddit bot voor & sub Reddit. In het verleden waren er nog al veel problemen met de updates van unifi producten.

  • 2x UAP AC LR

Software

Hypervisor

Hier ben ik gegaan voor proxmox. Dit omdat mijn host geen hardware raid controller heeft (hoe zou het toch komen 😅). Voor de rest ben ik eigenlijk vergeten waarom ik proxmox heb gekozen over XCP-NG. Ik maak gebruik van de non production repo. Ik heb hier eigenlijk nog nooit echt problemen mee gehad. Ik heb wel al gehad dat als ik VM’s probeer te verwijderen dat deze wel verdwenen maar dat ik nog apart de lock van de VM conf file moet halen en moet verwijderen en als ik een VM verwijderde dat de disks van deze VM’s niet verwijderd werden.

Storage

Voor Storage heb ik 2 verschillende oplossingen.

TrueNAS Ik heb TrueNAS voor mijn back ups van PBS (Proxmox Back Up Server) & hier is ook de vault van mijn Hyper back up. Ik heb nog wat uitzoekwerk te doen om truenas in de vingers te krijgen maar de delen die ik al heb lukken goed.

Synology: Mijn Synology NAS gebruik ik voor archief doeleinde, storage voor sommige containers zoals Paperless, photo storage via Synology Photos & Back ups van mijn Office 365 omgeving (OneDrive, SharePoint & mail)

Containers

Je zou denken dat mijn containers rechtstreeks op mijn PVE host draaien maar doet doen ze natuurlijk niet. Ik draaien mijn containers in een ubuntu VM met docker. Docker lijkt toch praktisch de standaard te zijn. Hier lijkt ook veel vraag naar te zijn. Ik heb ondertussen ook al de meeste van mijn services ondergebracht in een container waardoor ik echt bijna geen VM’s meer heb draaien. Mijn VM setup voor docker is misschien niet ideaal. Mijn boot drive van mijn Docker VM is 100GB. Dit lijkt mij geen goede situatie. Dus op termijn zou ik alles willen migreren naar een andere host zodat ik een aparte disk kan voorzien. Ik maak ook nog heel soms gebruik van Portainer. Dit omdat ik zo ben begonnen met docker. Echter probeer ik hiervan af te stappen omdat ik echt de commando’s probeer te leren.

De services die ik heb draaien via docker containers:

  • Actual > budget applicatie
  • HomeBox > inventory system
  • Nextcloud > personal cloud
  • Umami > analytics
  • Nginx proxy manager > reverse proxy
  • Ghostfolio > Money managment
  • Kimai > time tracker
  • Gitea > git platform
  • Mealie > kookboek web applicatie
  • Paperless-ngx > document management
  • Heimdall > dashboard for all applications
  • Minecraft server > Ja een Minecraft server
  • Snibox > code snipit manager
  • Zabbox > Monitoring

Back ups

Back ups gebeuren via Proxmox back up server. Er wordt elke avond een back up gemaakt van mijn Unifi controller VM & Docker01. Voor de rest heb ik niet veel VM’s meer. De PBS VM draait op mijn TrueNAS zodat ik niet heel die back up 2 keer over het netwerk moet sleuren. Voor mijn containers zou ik nog een aparte back up oplossing moeten bekijken.

Mijn back up retention policy is ingesteld als volgens:

keep Vaule
keep last 14
keep daily 7
Keep monthly 6
Keep weekly 5
Keep yearly 2

Ik maak ook back ups van mijn Synology nas via Hyper back up. Dit gebeurt elke nacht rond een uur of 3. Sinds kort heb ik ook een off-site back up voor mijn synology NAS. Als er dan ooit iets fout gaat onsite en mijn onsite back ups zijn niet meer bruikbaar dan heb ik toch nog altijd een off-site back up.

Op termijn ga ik ook al mijn compose files aanpassen zodat ik met een .env file kan werken. Dit maakt het mogelijk dat ik de compose files op Github kan zetten. Dan heb ik daar toch ook een soort van back up van.

Automation

Voor automatiseren van mijn home lab heb ik nog niet erg veel gedaan. Het plan bestaat om dingen uit te schrijven in Ansible. Ik ben momenteel wel bezig met mijn maandelijks onderhoud uit te schrijven en te bekijken wat ik kan doen via Ansible.

Reverse proxy

Mijn reverse proxy is Nginx Proxy Manager. Dit omdat ik origineel mijn Nginx proxy niet aan de praat kreeg. Nginx proxy manager is wel erg gebruiks vriendelijk wat heel erg handig is. Ik ben aan het bekijken of ik mijn reverse proxy ook intern kan gebruik. Dus dat ik naar mijn PVE02 host kan gaan door PVE02.sysadminnotes.be in te type inplaats van https://172.16.4.100:8006 te type wat toch wel een quality of life improvement is. Voor de rest is er maar een hand vol applicaties die ik geexposed heb via mijn reverse proxy:

  • Actual
  • Nextcloud
  • Heimdall
  • Gitea
  • Mealie
  • Synology NAS
  • Paperless
  • Vikunja

Voor vanaf mijn reverse proxy mijn containers te kunnen bereiken heb ik een apart reverse proxy netwerk aangemaakt en daar alle web servers van mijn services in toegevoegd. Misschien toch maar eens anders om doen.

Monitoring

Voor mijn monitoring zou ik gebruik willen gaan maken van Zabbix. Dit omdat het volgens mijn onderzoek toch de beste all in one monitoring is. Dit omdat ik er zowel mijn PVE, switchen, firewall, VM’s & containers mee wil monitoren. Het is echt wel een zeer uitgebreid programma en ik ga er wel een hele tijd mee bezig zijn voor dit volledig op te zetten naar wens. Dusver heb ik al het SMTP gedeelte kunnen configureren 😊. Een hele tijd ervoor heb ik PRTG gebruikt. Spijtig genoeg draait dit enkel op windows & kan je maximaal 100 sensors hebben. Omdat ik weiger een windows VM op te zetten, ben ik maar gestopt met PRTG.

overige Services

Voor de rest zijn er niet erg veel online services die ik gebruik voor mijn home lab.

SMTP2Go: Ik gebruik dit voor het versturen van e-mails in mijn home lab. Zoals mijn NAS die elke nacht een email stuurt over de status van mijn back up. Op PBS hebt ik dit nog niet werkende gekregen. Hier ben ik wel met bezig.

Microsoft 365: Hier heb ik een Office 365 basic subscription. Ik maak vooral gebruik van Outlook, OneDrive & SharePoint. De rest gebruikte ik ervoor ook maar ik begin steeds meer & meer services zelf te hosten. Zoals van planner naar vikunja & OneNote naar Obsidian. OneDrive naar Nextcloud durf ik tot nu toe niet omdat ik geen off site back up heb voor mijn VM’s. Ik host ook verschillende shared mailboxen via exchange online. Het is altijd leuk om te zeggen aan de kassa dat ze mij mails mogen sturen naar spam@ of nieuwsbrief@ 😂.

virtual machines (VM’s)

Voor mijn VM’s gebruik ik standaard Ubuntu server 20.04 LTS (EOL 4/25). Dus het wordt eens tijd voor te upgraden 😀. Ik configureer ook standaard automatic security updates. Nano is toch ook altijd handig want VI ligt me niet echt 100%. De Qemu agent is ook altijd aanwezig, zo kan ik bepaalde gegevens uitlezen vanuit mijn VM’s. Key based authentication ben ik ook terug opnieuw aan het implementeren. Een DNS heb ik momenteel niet meer, daar had ik wat problemen mee dus ben nog steeds opzoek naar een nieuwe DNS.

Mijn gebruikte VM’s zijn:

  • Unifi (VM ID 102)
  • YDH-Docker01 (VM ID 106)
  • YDH-Docker02 (VM ID 107)
  • PI-hole (VM ID 108)