Update Februari 2026 Feb 28, 2026

Wat draait er in mijn homelab

We zijn iets meer dan een jaar verder sinds ik met deze homelab ervaring ben begonnen en wat draait er nu in mijn homelab.

Hardware

Allereerst de hardware in mijn homelab. Het netwerk is max 1gb, een upgrade naar 2,5gb zou leuk zijn maar vergt wel een grote investering. Ook zou ik graag wat met Vlans gaan doen maar daar moet ik dieper induiken en misschien ga ik het wel combineren en gefaseerd invoeren.

Naast een Synology Nas heb ik een mini PC voor Home Assistant en een backup/redundant versie van diverse services zoals Wireguard, Technitium DNS, Syncthing, Uptime Kuma en de containers voor het bijhouden van mijn zonnepanelen.

De hoofdserver is een oude Dell T5820 Workstation met 64GB en een Xeon W223 processor, deze neemt een groot deel van de containers voor zijn rekening. Hier heb ik ook ruimte voor meerdere harde schijven om het gebrek in snelheid op mijn netwerk te compenseren.

Services

De services in mijn homelab in volgorde van prioriteit. Met andere woorden, wat zou ik het eerst herstellen mocht alles het niet meer doen.

Docker

Aangezien het meeste in containers draait zal ik eerst moeten zorgen dat ik mijn containers weer ergens kan hosten dus als eerste zorgen dat ik ergens docker weer up and running kan krijgen.

Containers voor de zonnepanelen

Hier is het oorspronkelijk allemaal voor begonnen, dus die moeten als eerste weer up and running komen. Gelukkig hebben ze weinig afhankelijkheden en kunnen ze snel in de lucht gebracht worden. Inmiddels heb ik ze ook voorzien van healthchecks om ook als ze draaien te controleren dat ze goed draaien.

A-Tier services

De volgende set aan services zijn zaken die ik vrijwel dagelijks gebruik en dus ook snel hersteld moeten worden in geval van een crash.

  • Syncthing: voor het beschikbaar hebben van bestanden over mijn verschillende computers en telefoon.
  • Wireguard: voor remote toegang tot mijn servers
  • Home Assistant: voor de dashboards voor inzicht en de automatiseringen en notificaties.
  • Nginx Proxy Manager: Reverse proxy om te zorgen dat al mijn services gemakkelijk te benaderen zijn inplaats van alleen via IP-Adressen.

B-Tier services

Deze services kunnen wachten tot het weekend om hersteld te worden.

  • Immich: het is belangrijker dat de foto's bewaard worden dan dat ze doorzoekbaar zijn of in een album staan.
  • Frigate: voor het bijhouden van de netwerkcamera's en de notificaties is leuk
  • Dockhand: het bijhouden en bijwerken van de containers met Dockhand is wel heel makkelijk en geeft voldoende inzicht.

C-Tier services

Deze services gebruik ik wel en ik zorg ook wel voor goede backups zodat ik ze kan herstellen maar het is niet erg als ik er een week geen beschikking over heb maar ik zou ze wel opnieuw installeren.

  • Homebox: voor het zoeken naar spullen, waar had ik het ook al weer opgeruimd
  • Beszel: server monitoring
  • Zerobyte: backup files
  • Databasus: backup databases
  • Paperless: Documenten beheer, heb ik nog niet echt in gebruik genomen nog een beetje mee spelen.
  • Tandoor: Recepten beheren
  • Glance: voor mijn eigen dashboard/homepage

Aanvullende tools

Een aantal containers welke out of the box werken en geen "eigen" configuratie nodig hebben

Tools in voor mijn homelab

Ik ben een groot fan van containers en om alles zo veel mogelijk in containers te draaien zijn er toch enkele tools die direct op de server draaien voor verschillende doeleinden.

Powertop

Om een 24/7 server qua stroomverbruik nog een beetje binnen de perken te houden gebruik ik powertop. Het heeft allerlei instellingen die gecontroleerd en gezet kunnen worden om het stroomverbruik omlaag te brengen zonder de performance erg te beinvloeden.

Ik heb mijn inspiratie hier vandaan gehaald om Powertop automatisch te laten starten en automatisch de beste instellingen te gebruiken. Hieronder het script wat ik er uiteindelijk voor gebruik.

# Bestand aanmaken
nano /etc/systemd/system/powertop.service

#Inhoud bestand
[Unit]
Description=PowerTOP auto-tuning

[Service]
Type=oneshot
ExecStart=/user/sbin/powertop --auto-tune

[Install]
WantedBy=multi-user.target

# starten
systemctl enable powertop.service

Nvidia tools

Om te controleren of de Nvidia kaart op een linux systeem het goed doet heb ik o.a. nvtop en nvidia-smi op het systeem staan om te zien of de kaart goed geinstalleerd is en of verschillende containers zoals Frigate en Immich de kaart wel gebruiken. Door deze uit te voeren wordt de kaart soms wakker geschud en kan ik zien dat de verschillende processen gebruik maken van de kaart. Met name Frigate heeft soms moeite met de kaart te herkennen lijkt het.

Daarnaast moet ik als er een Proxmox Kernel update is geweest de driver voor de Nvidia kaart weer opnieuw installeren/compileren anders werkt het niet. Dit heb ik uiteindelijk uit deze post gehaald.

Healthcheck voor mijn eigen containers

Voor het uitlezen van mijn zonnepanelen had ik eigen containers gemaakt, maar deze zijn wel eens een keer vast gelopen. Dan draaiden ze nog wel, maar ze deden het niet meer. Oorzaak nog onbekend, maar ze waren bevroren. Om dit tegen te gaan samen met Copilot een healthcheck script gemaakt om in docker te kunnen gebruiken om te checken of de container het nog doet en als hij het niet meer doet hem een schop geven om weer aan de gang te gaan. In het script wat de daadwerkelijke uitvoering doet van het uitlezen van de omvormer heb ik logging toegevoegd inclusief log rotation. Hierdoor loopt de server niet vol en kan ik op basis van het log bestand controleren of het systeem nog werkt.

handler = RotatingFileHandler(
    "/source/app.log",
    maxBytes=1_000_000,   # 1 MB
    backupCount=5         # bewaar 5 oude logs
)

logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s %(levelname)s %(message)s",
    handlers=[handler]
)

Het script wat ik gebruik om te controleren of er nog in het logfile geschreven wordt.

#!/bin/sh

LOGFILE="/source/app.log"

# Bestaat het logbestand?
if [ ! -f "$LOGFILE" ]; then
    exit 1
fi

AGE=$(($(date +%s) - $(stat -c %Y "$LOGFILE")))

# 600 seconden = 10 minuten
if [ "$AGE" -lt 600 ]; then
    exit 0
else
    exit 1
fi

De docker-compose file die het script gebruikt om de health te controleren.

services:
  goodwe_modbus_logger:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: goodwe_modbus_logger
    env_file:
      - .env
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "sh", "/source/healthcheck.sh"]
      interval: 1m
      timeout: 10s
      retries: 3
      start_period: 30s