Uw Home Assistant  configuratie veiligstellen met GitHub

Uw Home Assistant configuratie veiligstellen met GitHub

In dit artikel deel ik mijn ervaringen met het back-uppen van mijn Home Assistant-configuratiebestanden naar GitHub. Dit heeft mij niet alleen geholpen om mijn gegevens veilig te stellen, maar heeft ook mijn workflow gestroomlijnd.

Inleiding

Als enthousiaste gebruiker van Home Assistant ben ik altijd op zoek naar manieren om mijn slimme huis efficiënter en veiliger te maken. Een essentieel onderdeel hiervan is het back-uppen en beheren van mijn configuratiebestanden. Hieronder laat ik zien hoe ik dit aanpak met GitHub, inclusief het aanmaken van een SSH-sleutel en het gebruik van .gitignore.

Natuurlijk, hier is een beschrijving van de belangrijkste configuratiebestanden in Home Assistant die je zou kunnen back-uppen, en waarom het belangrijk is om secrets.yaml niet op te nemen in deze back-up.

Belangrijke configuratiebestanden voor Back-up

1. automations.yaml

  • Functie: Dit bestand bevat al je automatiseringsregels. Elke automatisering die je in Home Assistant creëert, wordt hier opgeslagen. Het back-uppen van automations.yaml zorgt ervoor dat je complexe of tijdrovende automatiseringen niet opnieuw hoeft in te stellen bij een systeemherstel.

2. configuration.yaml

  • Functie: De ruggengraat van je Home Assistant-installatie. Hierin staan je basisinstellingen, integraties, en componentconfiguraties. Het is essentieel om dit bestand te back-uppen, want het bevat de kerninstellingen van je systeem.

3. scripts.yaml

  • Functie: Hierin staan de scripts die je hebt gemaakt in Home Assistant. Scripts zijn reeksen acties die je kunt uitvoeren met een enkel commando. Een back-up van je scripts.yaml zorgt ervoor dat je geen complexe scripts verliest die je huisautomatisering soepeler laten verlopen.

4. scenes.yaml

  • Functie: Dit bestand bevat scenes die je hebt gedefinieerd. Scenes stellen je in staat om meerdere apparaten in je huis tegelijkertijd te controleren, waardoor je verschillende sferen of instellingen kunt creëren. Een back-up van je scenes helpt je om snel je gewenste huisomgeving te herstellen.

Er kunnen nog meer YAML files zijn die je wilt backuppen.

Waarom secrets.yaml niet backuppen?

secrets.yaml

  • Functie: In secrets.yaml sla je gevoelige informatie op zoals wachtwoorden, API-sleutels en toegangstokens. Het is cruciaal om dit bestand niet op te nemen in je GitHub-back-up om beveiligingsredenen.

  • Hoe in .gitignore te plaatsen: Voeg eenvoudigweg de regel secrets.yaml toe aan je .gitignore bestand. Dit zorgt ervoor dat Git dit bestand negeert bij het pushen van je configuratie naar GitHub. Hetzelfde geldt voor andere gevoelige bestanden zoals ip_bans.yaml en known_devices.yaml.

Wat doen deze configuratiebestanden?

Elk van deze bestanden speelt een unieke rol in de personalisatie en functionaliteit van je Home Assistant-systeem:

  • automations.yaml maakt het mogelijk om je huis op een slimme en geautomatiseerde manier te beheren, zoals het automatisch inschakelen van lichten bij zonsondergang.

  • configuration.yaml is het startpunt voor de meeste configuraties, van netwerkinstellingen tot geïntegreerde apparaten en services.

  • scripts.yaml biedt een manier om complexe acties te vereenvoudigen tot enkele commando's, waardoor je efficiënter kunt werken.

  • scenes.yaml maakt het mogelijk om de sfeer in je huis met één klik aan te passen, wat bijdraagt aan het comfort en de beleving in je slimme huis.

Door deze bestanden regelmatig te back-uppen, zorg je voor een solide veiligheidsnet voor je Home Assistant-configuratie en minimaliseer je het risico op gegevensverlies bij eventuele systeemstoringen of -fouten.

SSH-sleutel aanmaken en uploaden naar GitHub

Waarom een SSH-sleutel?

SSH-sleutels bieden een veilige manier om verbinding te maken met GitHub zonder elke keer een wachtwoord te hoeven invoeren.

Stap 1: Installeren van de Terminal & SSH Add-on in Home Assistant

  1. Open Home Assistant en ga naar de zijbalk.

  2. Klik op 'Supervisor' en vervolgens op 'Add-on store'.

  3. Zoek naar de 'Terminal & SSH' add-on en klik erop.

  4. Klik op 'Install' om de add-on te installeren.

  5. Na installatie, open de add-on en schakel 'Show in sidebar' in voor gemakkelijke toegang.

Stap 2: Een SSH-sleutel aanmaken in Home Assistant

  1. Ga naar de 'Terminal & SSH' add-on via de zijbalk.

  2. In de terminal, voer het commando ssh-keygen uit. Dit start het proces om een nieuwe SSH-sleutel te genereren.

  3. Wanneer je wordt gevraagd waar je de sleutel wilt opslaan, kun je gewoon op Enter drukken om de standaardlocatie te accepteren.

  4. Je krijgt ook de vraag om een wachtwoord in te voeren voor extra beveiliging van je sleutel. Dit is optioneel, maar aanbevolen.

Stap 3: De Inhoud van de .pub-sleutel Kopiëren

  1. Nadat de sleutel is aangemaakt, moet je de inhoud van het .pub bestand (de openbare sleutel) kopiëren. Dit doe je met het commando cat ~/.ssh/id_rsa.pub.

  2. De output die je ziet is de inhoud van je openbare SSH-sleutel. Selecteer deze tekst en kopieer deze (meestal met rechtsklikken en 'Kopiëren' kiezen).

Stap 4: De SSH-sleutel toevoegen aan GitHub

  1. Ga naar de GitHub-website en log in op je account.

  2. Klik op je profielfoto in de rechterbovenhoek en ga naar 'Settings'.

  3. In de zijbalk, klik op 'SSH and GPG keys'.

  4. Klik op 'New SSH key' of 'Add SSH key'.

  5. Plak de gekopieerde sleutel in het veld 'Key' en geef het een naam die je helpt herinneren waar deze sleutel voor is (bijv. 'Home Assistant').

  6. Klik op 'Add SSH key' om de sleutel op te slaan.

Met deze stappen heb je een SSH-sleutel aangemaakt binnen Home Assistant en deze toegevoegd aan je GitHub-account, waardoor je veilig verbinding kunt maken zonder elke keer een wachtwoord in te voeren. Dit is een belangrijke stap in het proces om je Home Assistant-configuratie veilig op GitHub te kunnen back-uppen.

Stap 2: Wat is .gitignore en waarom is het belangrijk?

.gitignore is een bestand dat Git vertelt welke bestanden of mappen genegeerd moeten worden bij het pushen naar GitHub. Dit is cruciaal om gevoelige informatie, zoals wachtwoorden of API-sleutels, veilig te houden.

Wat moet er in .gitignore?

  • secrets.yaml: Bevat gevoelige informatie.

  • *.db: Databasebestanden die vaak groot zijn en persoonlijke data bevatten.

  • Lokale logbestanden en configuratiebestanden die specifiek zijn voor je eigen systeem.

Waar plaats je .gitignore?

Dit bestand hoort in de root van je Home Assistant-configuratiemap.

Mijn .gitignore ziet er als volgt uit.

# Ignore everything
*

# But whitelist the following:
!*.yaml
!.gitignore
!*.md

# Whitelisted YAML files to specifically ignore:
secrets.yaml
ip_bans.yaml
known_devices.yaml

# Ignored directories and files
.storage/
.cloud/
.google.token
blueprints/
custom_components/
deps/
esphome/
image/
images/
themes/
tts/
www/
.HA_VERSION
*.log
*.db*

Uitleg van de .gitignore:

  • *: Dit zorgt ervoor dat Git standaard alles negeert in de map.

  • !*.yaml, !.gitignore, !*.md: Deze regels 'whitelisten' bepaalde bestandstypen en bestanden, wat betekent dat Git ze niet zal negeren ondanks de eerdere * regel. Alles eindigend op .yaml, .gitignore zelf, en Markdown-bestanden (.md) worden opgenomen in Git.

  • secrets.yaml, ip_bans.yaml, known_devices.yaml: Specifieke YAML-bestanden die je wilt negeren vanwege gevoelige informatie.

  • De lijst met mappen zoals .storage/, .cloud/, en custom_components/: Deze mappen bevatten meestal gebruikersspecifieke of gevoelige gegevens en moeten daarom worden genegeerd.

  • *.log, *.db*: Dit negeert alle logbestanden (*.log) en databasebestanden (*.db*, inclusief bijbehorende shm- en wal-bestanden). Deze bestanden kunnen groot zijn en bevatten mogelijk gevoelige of onnodige informatie voor een Git-repository.

Stap 3: Een repository aanmaken op GitHub

  1. Log in op GitHub en klik op 'New repository'.

  2. Noem je repository bijvoorbeeld home-assistant-config en maak hem privé.

  3. Laat de andere opties ongewijzigd en klik op 'Create repository'.

Stap 4: Configuratiebestanden toevoegen en pushen

Gebruik de volgende commando's in de terminal in Home Assistant:

git init
git config user.email "jouw@email.com"
git config user.name "Jouw Naam"
git add .
git commit -m "Eerste commit van mijn Home Assistant-configuratie"
git remote add origin https://github.com/[jouwgebruikersnaam]/home-assistant-config.git
git push -u origin main

Het belang van regelmatig updaten

Het is cruciaal om regelmatig updates te pushen naar GitHub. Dit zorgt ervoor dat je altijd een recente back-up hebt en helpt bij het bijhouden van wijzigingen.

Conclusie

Het regelmatig back-uppen en beheren van mijn Home Assistant-configuratiebestanden via GitHub heeft mijn slimme huis veiliger en mijn workflow efficiënter gemaakt. Met de toevoeging van SSH-sleutels en .gitignore ben ik gerustgesteld dat mijn gegevens veilig zijn.

Wil je mijn Home Assistant configuratie bestanden zien?

Klik dan hier!

Did you find this article valuable?

Support Theo van der Sluijs Blog by becoming a sponsor. Any amount is appreciated!