HA Container Updater — "Supervisor-style" updates for Docker users

Hey everyone!

I wanted to share a project I’ve been working on to bridge a feature gap for those of us running Home Assistant Container. One of the best parts of HAOS/Supervisor is the ability to update Core with a single click from the UI—a feature that has historically been missing for Container users.

In a standard Docker setup, a container can’t easily restart or recreate itself. To solve this, I’ve built HA Container Updater.

:hammer_and_wrench: How it Works

Since a script running inside a container is killed the moment the container stops, this integration uses a two-part design:

  1. The HA Component: Polls GitHub for releases and provides a native Update entity. When you click “Install,” you have the option to trigger a backup before the update starts. It then writes a “magic string” trigger file to a volume-mounted directory.
  2. The Host Watcher: A lightweight systemd service running on your Docker host (Raspberry Pi, NUC, etc.) monitors that file. When it detects the trigger, it safely runs the backup (if requested), then executes docker compose pull and up -d outside the container environment.

:camera_with_flash: Screenshot


The integration hooks directly into the native HA Update entities.

:sparkles: Key Features

  • :counterclockwise_arrows_button: Native UI Integration: Updates appear in Settings → System → Updates alongside your other cards.
  • :floppy_disk: Pre-Update Backups: Includes a backup option directly on the updater dialog, so you can secure your config before the new image is pulled.
  • :shield: GitHub API Awareness: Intelligent polling with rate-limit caching to avoid 403 errors.
  • :locked: Secure Execution: Uses magic string validation and lock files. It avoids mounting /var/run/docker.sock into the HA container entirely.
  • :wastebasket: Cleanup: Optional automatic docker image prune after a successful update.
  • :gear: Easy Config: Full support for Config Flow and Options Flow.

:thinking: How this differs from other solutions

  • Vs. Watchtower: Watchtower is great for automation, but it doesn’t give you a manual “Install” button or the ability to trigger a backup right before the update.
  • Vs. WUD (What’s Up Docker): While WUD is powerful, it often requires a separate management container. This integration is “Supervisor-Lite”—it keeps the experience entirely within the native HA interface.
  • Vs. Shell Commands: Unlike simple shell buttons, this uses the formal Update Entity (introduced in Core 2022.4), providing version comparisons and release notes links.

:building_construction: Status & Community Feedback

I’ve been running this integration in my own production environment for the last 5 months, smoothly processing every new Home Assistant Core release without any issues.

While it’s proven reliable in my setup, I’m tagging this as a Work In Progress as I gather feedback from the broader community on different host configurations.

I’d love to hear your thoughts on:

  • The backup implementation—are there specific directories or compression formats you’d like to see supported?
  • Support for different Docker configurations beyond standard docker-compose.
  • Any edge cases with the systemd watcher script.

:link: Get Started

You can find the installation instructions for both the HA component and the host-side script on GitHub:

:backhand_index_pointing_right: GitHub: cskolny/ha-container-updater

Note: This requires a systemd-based Linux host and HA version 2026.3 or later.

Looking forward to hearing your feedback and feature recommendations!

2 Likes