Files
wiki/Catalogue-Self-Hosted/apps/app-home-assistant-time-machine.md
2026-06-09 18:40:21 +02:00

136 lines
6.6 KiB
Markdown

---
title: HA Time Machine
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, backups, home-assistant, python, mit, niche]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Backups, https://github.com/saihgupr/HomeAssistantTimeMachine]
---
# 💾 HA Time Machine
> **La « Time Machine » pour vos configurations Home Assistant** : versions, diff et restauration de vos fichiers YAML depuis une interface web simple.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | (GitHub) |
| **GitHub** | [saihgupr/HomeAssistantTimeMachine](https://github.com/saihgupr/HomeAssistantTimeMachine) |
| **License** | MIT |
| **Langage** | Python |
| **Étoiles GitHub** | 703 ⭐ |
| **Dernière MAJ** | 2026-06-07 |
| **Catégorie** | [[cat-backups|Backups]] |
## 📝 Description
**HA Time Machine** est un **outil de versioning dédié à Home Assistant**. Il observe en continu le dossier de configuration (`/config`) de votre instance HA — fichiers YAML, automations, scripts, Lovelace, secrets — et en garde un **historique versionné consultable** depuis une interface web légère.
Concrètement, le projet joue le même rôle que la « Time Machine » macOS, mais appliquée au répertoire `config` de Home Assistant :
-**Snapshots automatiques** planifiés du dossier `/config`
-**Interface web** claire listant chaque version (date, auteur, taille)
-**Diff visuel** entre deux versions (ajouts / suppressions / modifications)
-**Restauration en un clic** d'un fichier unique ou d'un dossier complet
-**Compatible** `configuration.yaml`, `automations.yaml`, `scripts.yaml`, `ui-lovelace.yaml`, `.storage/`
-**Léger** : Python + SQLite, déploiement Docker en une commande
-**Multi-instances** : un seul HA Time Machine peut historiser plusieurs HA distants (via volume monté)
**Public cible** : utilisateurs **Home Assistant** qui veulent un **historique fin** de leurs fichiers YAML, sans monter une stack Git complète ni un Borg juste pour quelques Mo de configuration. C'est l'outil parfait entre « copier-coller manuel » et « VCS complet ».
## 🚀 Installation
### Docker Compose (recommandé)
```yaml
# docker-compose.yml
version: '3.8'
services:
ha-time-machine:
image: ghcr.io/saihgupr/homeassistanttimemachine:latest
container_name: ha-time-machine
restart: unless-stopped
ports:
- "8124:8000" # Web UI
volumes:
- ha_config:/config:ro # Dossier HA à versionner (read-only)
- hatm_data:/data # Historique + base SQLite
environment:
- TZ=Europe/Paris
- HA_CONFIG_PATH=/config
- INTERVAL=300 # Snapshot toutes les 5 min
labels:
- "traefik.enable=true"
- "traefik.http.routers.hatm.rule=Host(`hatm.example.com`)"
- "traefik.http.routers.hatm.entrypoints=websecure"
- "traefik.http.routers.hatm.tls.certresolver=letsencrypt"
volumes:
ha_config:
external: true
name: homeassistant_config
hatm_data:
```
> 💡 Le volume `ha_config` est monté **en lecture seule** (`ro`) pour ne jamais qu'un bug de l'outil n'écrase votre configuration.
## ⚙️ Configuration Initiale
1. **Récupérer le chemin de votre config HA** : `/usr/share/hassio/homeassistant/` en mode HA OS / Supervised, ou un bind mount si vous tournez HA en conteneur à côté.
2. **Monter ce dossier** (read-only) dans `ha-time-machine` comme volume.
3. **Démarrer le conteneur** : `docker compose up -d`.
4. **Accéder à l'UI** : `http://IP:8124` (ou via Traefik sur `hatm.example.com`).
5. **Vérifier le premier snapshot** : un point de restauration doit apparaître dans la timeline en moins de 5 min (intervalle par défaut).
6. **Tester une restauration** sur un fichier anodin (`scripts.yaml` après l'avoir sauvegardé) pour valider le workflow.
## 🔄 Alternatives
### Open Source
- [[app-restic]] / [[app-borg]] — Backups génériques plus lourds (chiffrement, déduplication, remote), surdimensionnés pour quelques Mo de YAML.
- [[app-kopia]] — Alternative moderne à Restic/Borg avec UI.
- **Git + cron** — `git init` dans le dossier config + commit auto, solution DIY sans UI.
- **Home Assistant Google Drive Backup** (addon) — Backup complet, pas du versioning fin.
- **Home Assistant built-in snapshots** — Snapshots complets du superviseur, granularité au fichier.
### Comparaison HA Time Machine vs autres
| Critère | HA Time Machine | Git + cron | Restic | HA Snapshot |
| :--- | :--- | :--- | :--- | :--- |
| Cible | YAML HA | Tout | Tout | HA complet |
| Granularité | Fichier | Commit | Bloc | Snapshot |
| UI web | ✅ | ❌ | ❌ (sauf Kopia) | ✅ (HA) |
| Diff visuel | ✅ | Via GitLab | ❌ | ❌ |
| Restauration 1 fichier | ✅ | `git checkout` | `restore` | ❌ |
| Chiffrement | ❌ | ❌ | ✅ (AES) | ✅ |
| Lourd / léger | Léger | Moyen | Moyen | Lourd |
**Verdict** : HA Time Machine est **l'outil idéal** pour les utilisateurs HA qui veulent **un historique fin de leur YAML** avec une UI simple. Pour un backup complet, combinez avec les snapshots natifs de HA ou un Restic sur le dossier `/config`.
### Propriétaires
- **Dropbox + versioning** — possible mais hors self-hosted.
- **Time Machine sur NAS** — pour le NUC qui héberge HA, pas spécifique aux configs.
## 🔐 Sécurité
- **Règle 3-2-1** : le volume `hatm_data` ne compte que pour **1 copie locale** ; exportez régulièrement la base SQLite (et un tar du dossier) vers un [[app-restic]] / [[app-borg]] distant, ou un S3 compatible.
- **Pas de chiffrement intégré** : l'historique YAML est stocké en clair sur disque. Si votre serveur est compromis, les credentials présents dans `secrets.yaml` le sont aussi — gardez `secrets.yaml` en dehors si possible, ou chiffrez le volume `hatm_data` au niveau OS (LUKS / ZFS).
- **Test de restauration** : restaurez volontairement un fichier de conf tous les mois pour valider que l'UI fonctionne (ça ne remplace pas un vrai DR runbook, voir [[strategie-backup-321]]).
- **Lecture seule** : le volume `ha_config` est monté `ro` pour empêcher toute corruption en cas de bug applicatif.
## 📚 Ressources
- [GitHub saihgupr/HomeAssistantTimeMachine](https://github.com/saihgupr/HomeAssistantTimeMachine)
- [Communauté Home Assistant Community Forum](https://community.home-assistant.io/)
## Pages Liées
- [[cat-backups]] — Catégorie Backups
- [[strategie-backup-321]] — Règle 3-2-1
- [[app-restic]] — Backup générique chiffré
- [[app-borg]] — Alternative à Restic
- [[app-kopia]] — UI moderne pour backups
- [[app-portainer]] — Pour gérer vos conteneurs
- [[securisation-home-lab]] — Bonnes pratiques de sécurité