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

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_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 + crongit 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

Pages Liées