Documentation
D2HA (Docker to Home Assistant) is a small web app that runs next to your containers. It tells you when an image has a new version, shows what changed, updates the container safely and shows its logs: in the browser, in Home Assistant and on Telegram.
How it works
- Every few hours (6 by default) D2HA asks the registry for the digest of every image tag you run, with a light
HEADrequest. When the digest is not the one of your image, an update is available. - Then it reads the labels of the new image: its version (
org.opencontainers.image.version) and its source (org.opencontainers.image.source). So you see13.2.5 → 13.3.0, not just “something changed”, and the GitHub release notes of that exact version. - An update downloads the new image while the container keeps running, then recreates the container with the settings you gave it. If the new container does not start, the old one is put back.
D2HA follows the tag you run. With latest or a major tag such as 2, it tells you about every new image of that tag. With an exact version such as 1.2.3, it only notices a rebuild of that same tag: to move to 1.2.4, change the tag yourself.
What you need
| For | You need |
|---|---|
| D2HA | Docker Engine 24 or newer, on an amd64 or arm64 machine |
| The Home Assistant integration | Home Assistant 2026.8 or later |
| Telegram notifications | A Telegram bot (optional) |
| More release notes per hour | A GitHub token without scopes (optional) |
Where to find what
| I want to… | Page |
|---|---|
| Find my way around the web interface | Web interface |
| Read the logs of a container | Logs |
| Change the check interval, the password or two-factor authentication | Settings |
| Build a page for D2HA in Home Assistant | Dashboard |
| Let Home Assistant update my containers or warn me | Automations |
| See every option and label | Configuration |
| Keep D2HA private | Security |
| Script D2HA | API v1 |
| Fix something that does not work | Troubleshooting |
What D2HA does not do
D2HA is small on purpose. It does not manage networks or volumes, does not edit compose files and draws no resource graphs. It never updates itself or the socket proxy it uses to reach Docker: those you update with docker compose pull.
Something wrong or missing on this page? Open an issue.