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