6.6 KiB
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 |
| License | MIT |
| Langage | Python |
| Étoiles GitHub | 703 ⭐ |
| Dernière MAJ | 2026-06-07 |
| Catégorie | [[cat-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é)
# 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_configest monté en lecture seule (ro) pour ne jamais qu'un bug de l'outil n'écrase votre configuration.
⚙️ Configuration Initiale
- 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é. - Monter ce dossier (read-only) dans
ha-time-machinecomme volume. - Démarrer le conteneur :
docker compose up -d. - Accéder à l'UI :
http://IP:8124(ou via Traefik surhatm.example.com). - Vérifier le premier snapshot : un point de restauration doit apparaître dans la timeline en moins de 5 min (intervalle par défaut).
- Tester une restauration sur un fichier anodin (
scripts.yamlaprè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 initdans 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_datane 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.yamlle sont aussi — gardezsecrets.yamlen dehors si possible, ou chiffrez le volumehatm_dataau 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_configest montéropour empêcher toute corruption en cas de bug applicatif.
📚 Ressources
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é