Dit project is een Infrastructure-as-Code suite die een Linux-server volledig stript van ballast en inricht als een geoptimaliseerde, headless Docker-host voor o.a. Home Assistant en Vaultwarden.
| Categorie | Badges |
|---|---|
| Logic | |
| Automation | |
| Infra | |
| Security | |
| Health |
Geen handmatige UI-configuraties of 'magic fixes'. We gebruiken Infrastructure as Code om:
- Binnen 10 minuten een volledige smart-home server op te tuigen.
- Hardware-conflicten (USB-poort wisselingen) te elimineren.
- Security-hardening (Lynis) standaard mee te leveren.
Dit project is een Infrastructure-as-Code suite die de "standaard" afdwingt op homelab hardware.
Ontwikkeld door voor het beheren van een minimalistische Home Assistant homelab. Een verzameling Ansible-rollen die een Linux-server strippen van GUI/ballast en configureren als Docker-host voor o.a. Vaultwarden, Caddy en Home Assistant. Ontworpen voor headless Linux-omgevingen (bijv. Intel N100 of oude laptops) binnen het lokale netwerk. Te gebruiken bij de initiΓ«le setup van een server en bij elke configuratiewijziging om de "Gouden Staat" te behouden. Om hardware-resources optimaal te benutten (geen verspilling) en om een reproduceerbare, veilige omgeving te hebben zonder handmatige fouten.
Dit project is en blijft 100% gratis.
- Geen winstoogmerk: Ik bouw dit niet om geld te verdienen, maar om slimme technologie toegankelijk te maken voor iedereen.
- Hergebruik: Het doel is om oude computers een tweede leven te geven in plaats van ze weg te gooien.
- Jouw data is van jou: Omdat alles lokaal draait op jouw eigen hardware (en niet in de 'cloud'), heeft geen enkel bedrijf inzage in jouw huis.
- Open Kaart: Iedereen mag de code inzien, aanpassen en verbeteren. Dat is wat we bedoelen met de "MIT-licentie": volledige vrijheid.
- π‘οΈ Core Infrastructure & Security
- π³ Container & Netwerk Stack
- π Apps & Data
Voeg screenshots of GIFs toe van je project.

- Ansible: Voor configuratiebeheer en automatisering.
- Docker: Voor containerisatie van alle services.
- Python: Als runtime voor Ansible en custom scripts.
- PostgreSQL: Voor persistente en veilige data-opslag.
- YAML: Voor leesbare Infrastructure-as-Code.
Stap-voor-stap installatie.
git clone https://github.com/henrydenhengst/homelab.git
cd homelab
cp group_vars/all/secret.example.yml group_vars/all/secret.yml
vim group_vars/all/secret.yml
ansible-vault encrypt group_vars/all/secret.yml
ansible-playbook site.yml --ask-vault-pass.
βββ group_vars
βΒ Β βββ all
βββ inventory
βΒ Β βββ group_vars
βββ roles
βββ caddy
βββ common
βββ docker
βββ duckdns
βββ esphome
βββ fail2ban
βββ flame
βββ gotify
βββ hardware_discovery
βββ homeassistant
βββ matter_server
βββ mosquitto
βββ portainer
βββ postgres
βββ rclone
βββ rsync
βββ rtl_433
βββ security
βββ vaultwarden
βββ zigbee2mqtt
βββ zwavejsui
Hoe je tests runt.
ansible-playbook site.yml --syntax-check
ansible-playbook site.yml --check --ask-vault-pass
ansible all -m pingNa elke run voer ik een automatische controle uit op de vitale functies van het systeem:
- Container Check: Zijn Home Assistant, MQTT en Postgres stabiel?
- Port Check: Staan de noodzakelijke poorten open voor data-verkeer?
- Disk Check: Is er nog voldoende ruimte op de SSD (voor database logs)?
Uitvoeren via:
ansible-playbook site.yml --tags healthcheck- CPU: Minimaal 2 Cores (Intel N100, oude laptop/mini-pc/desktop).
- RAM: 4GB minimaal (8GB aanbevolen voor data-analyse).
- Opslag: 32GB+ SSD/NVMe (Vermijd SD-kaarten voor database-stabiliteit).
- Extra: Externe USB backup-disk & Zigbee dongle (SkyConnect / Sonoff).
Waarom moeilijk doen als het efficiΓ«nt kan? Dit project volgt drie kernprincipes:
- Headless by Default: Geen schermen, geen verspilde RAM. Alles via SSH en Web-UI.
- OS-Agnostisch: Of je nu Debian, Arch of RedHat draait; de "standaard" wordt overal afgedwongen.
- Idempotentie: Je kunt het playbook op elk moment draaien om je systeem terug te brengen naar de perfecte staat.
- Git Crash Course Snelcursus om te begrijpen hoe je code beheert en veilig naar GitHub pusht.
- Docker Roadmap: Beginner to Pro Alles over containers, van je eerste 'hello world' tot complexe omgevingen.
- Ansible Quick Start Course De snelste manier om te begrijpen hoe Playbooks en Roles samenwerken.
- Ansible Deep Dive - Playlist Deel 1 Grondige uitleg over de architectuur van Ansible.
- Ansible Deep Dive - Playlist Deel 2 Geavanceerde configuraties voor de echte power-user.
- Home Assistant Home Assistant
- Home Assistant Automation Automations
- Home Assistant Dashboard Dashboards
Contributions zijn welkom!
- Fork de repository
- Maak een nieuwe branch
git checkout -b feature/my-feature
- Commit je wijzigingen
- Open een Pull Request
Ik zoek specifiek naar Nederlandse techneuten die willen helpen dit systeem robuuster te maken.
Hoe kun je helpen?
- Testers: Valideer de hardware-mapping op jouw specifieke dongles.
- Developers: Help mee met de backup-automatisering en security-hardening.
π Bekijk de actuele taken hier: GitHub Issues
Bij het draaien van een geautomatiseerd homelab op wisselende hardware kunnen de volgende obstakels optreden:
- Hardware-Inconsistentie: Verschillende namen voor netwerkinterfaces (
eno1vseth0) en variabele USB-paden voor Zigbee/Matter dongles. - Netwerkbeperkingen (CGNAT): Providers die poort-forwarding blokkeren, waardoor de standaard HTTP-challenge voor SSL-certificaten (Caddy) faalt.
- Architectuur-conflicten (CPU): Docker-images die geoptimaliseerd zijn voor x86_64 (Intel) draaien niet op ARM (Raspberry Pi), wat leidt tot
exec formatfouten. - Opslag-fouten: Onjuiste mount-points voor externe schijven, waardoor databases niet starten of de systeem-schijf onbedoeld volloopt.
- Configuratie-drift: Handmatige aanpassingen op de server die niet in de Ansible-code staan, wat leidt tot onvoorspelbaar gedrag bij een herinstallatie.
Dit plan adresseert de bovenstaande problemen om de stack volledig hardware-agnostisch en robuust te maken.
- Pre-flight Rol: Ontwikkelen van een Ansible-taak die hardware (CPU-type, netwerk-ID, USB-sticks) scant vΓ³Γ³r de installatie.
- Persistente USB-Paden: Volledige overstap van
/dev/ttyUSBxnaar het unieke/dev/serial/by-id/pad voor alle hardware-dongles.
- DNS-01 Challenge: Caddy configureren voor SSL-validatie via DNS-records (DuckDNS API) om CGNAT-beperkingen volledig te omzeilen.
- Health-Monitoring: Implementeren van een centraal dashboard (Portainer/Uptime Kuma) voor real-time status van alle containers.
- Automated Off-site Backups: Volledige integratie van de
rclonerol met versleutelde uploads naar cloud-opslag. - Git-based Rollbacks: Gebruik maken van Git-tags om configuraties snel terug te draaien naar een bewezen "Gouden Staat".
- Universal Stack: VerifiΓ«ren en labelen van alle rollen voor zowel Intel/AMD als ARM-hardware, zodat de suite overal draait.
Dit project valt onder de MIT License.
Zie LICENSE voor meer informatie.
Naam β @henrydenhengst
Project Link: https://github.com/henrydenhengst/homeassistant
Vind je dit project handig? Geef het een β op GitHub!