--- 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é