Skip to content
henrydenhengstPublic

About

Mijn Home Assistant Homelab configuratie - Beheerd met Ansible en Docker.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

πŸš€ Home Assistant Homelab

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.

πŸ› οΈ Tech Stack & Status

Categorie Badges
Logic Python YAML
Automation Ansible Vault
Infra Docker PostgreSQL
Security Lynis License
Health Build Version

πŸ“– Over het project

Geen handmatige UI-configuraties of 'magic fixes'. We gebruiken Infrastructure as Code om:

  1. Binnen 10 minuten een volledige smart-home server op te tuigen.
  2. Hardware-conflicten (USB-poort wisselingen) te elimineren.
  3. 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.


🌳 Vrijheid voor iedereen (Non-profit & Open Source)

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.

✨ Features

  • πŸ›‘οΈ Core Infrastructure & Security
  • 🐳 Container & Netwerk Stack
  • πŸ” Apps & Data

πŸ“Έ Screenshots (optioneel)

Voeg screenshots of GIFs toe van je project.

![Screenshot](docs/screenshot.png)

πŸ› οΈ Tech Stack

  • 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.

βš™οΈ Installatie

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

πŸ“‚ Project structuur

.
β”œβ”€β”€ 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


πŸ§ͺ Tests

Hoe je tests runt.

ansible-playbook site.yml --syntax-check
ansible-playbook site.yml --check --ask-vault-pass
ansible all -m ping

🩺 Automated Healthcheck

Na 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

πŸ—οΈ Systeemvereisten

πŸ”Œ Hardware (Server)

  • 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).

🎯 De Filosofie

Waarom moeilijk doen als het efficiΓ«nt kan? Dit project volgt drie kernprincipes:

  1. Headless by Default: Geen schermen, geen verspilde RAM. Alles via SSH en Web-UI.
  2. OS-Agnostisch: Of je nu Debian, Arch of RedHat draait; de "standaard" wordt overal afgedwongen.
  3. Idempotentie: Je kunt het playbook op elk moment draaien om je systeem terug te brengen naar de perfecte staat.

πŸ“Ί Media, YouTube & Websites

🌿 De Basis: Git & Docker

πŸ€– Automatisering: Ansible

Homelab: Home Assistant


🀝 Contributing

Contributions zijn welkom!

  1. Fork de repository
  2. Maak een nieuwe branch
git checkout -b feature/my-feature
  1. Commit je wijzigingen
  2. Open een Pull Request

🀝 Meewerken? (Testers & Devs Gezocht!)

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


⚠️ Mogelijke Problemen (Pijnpunten)

Bij het draaien van een geautomatiseerd homelab op wisselende hardware kunnen de volgende obstakels optreden:

  • Hardware-Inconsistentie: Verschillende namen voor netwerkinterfaces (eno1 vs eth0) 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 format fouten.
  • 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.

πŸ—ΊοΈ Roadmap: De Weg naar de Standaard 2.0

Dit plan adresseert de bovenstaande problemen om de stack volledig hardware-agnostisch en robuust te maken.

πŸ“ Fase 1: Slimme Hardware Discovery (Korte termijn)

  • 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/ttyUSBx naar het unieke /dev/serial/by-id/ pad voor alle hardware-dongles.

πŸ“ Fase 2: Netwerk & SSL Robuustheid

  • 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.

πŸ“ Fase 3: Failover & Backup Strategie

  • Automated Off-site Backups: Volledige integratie van de rclone rol 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".

πŸ“ Fase 4: Multi-Architectuur Support

  • Universal Stack: VerifiΓ«ren en labelen van alle rollen voor zowel Intel/AMD als ARM-hardware, zodat de suite overal draait.

πŸ“ License

Dit project valt onder de MIT License.

Zie LICENSE voor meer informatie.


πŸ‘€ Auteur

Naam – @henrydenhengst

Project Link: https://github.com/henrydenhengst/homeassistant


⭐ Support

Vind je dit project handig? Geef het een ⭐ op GitHub!

About

Mijn Home Assistant Homelab configuratie - Beheerd met Ansible en Docker.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages