Autoheal

Monitor and restart unhealthy docker containers.

  • Tools & Utilities
Monitor and restart unhealthy docker containers. This functionality was proposed to be included with the addition of HEALTHCHECK, however didn't make the cut. This container is a stand-in till there is native support for --exit-on-unhealthy

Platform availability

Available on 1 of 9 platforms

  • Unraid
  • TrueNAS (not listed)
  • Umbrel (not listed)
  • ZimaOS (not listed)
  • Proxmox (not listed)
  • Helm (not listed)
  • Mac (not listed)
  • Windows (not listed)
  • Linux (not listed)

Health score?A 0-100 score computed nightly from four factors: maintained (40%: recent commits and steady activity), popular (25%: GitHub stars, log scale), easy to install (20%: platforms, install notes, setup guides, Docker image) and light to run (15%: minimum RAM, ARM support). When the source code has been checked, a fifth factor, security check (20%: automated scan for committed secrets, unsafe desktop-app settings, known-vulnerable dependencies and project hygiene; any serious finding caps it at 20), is added. Factors without data are left out and the rest are rescaled.

43/100 Fair

Maintained
33last commit 399 days ago
Popular
662,012 GitHub stars
Easy to install
351 install platform, install notes, Docker image
Light to run
No data

Based on 3 of 4 factors.

Availability: platform listings confirmed today, links checked 14 days ago

GitHub stars
2,012
Open issues
61
Last commit
2025-09-09
License
MIT
Activity
stale

Checked 6 days ago - source: GitHub (willfarrell/docker-autoheal)

Resources & Compatibility

ARM (e.g. Raspberry Pi) is supported.

Checked 15 days ago - source: Docker Hub image tags and published docs

First-install notes

  • Give it access to Docker Add the Docker socket mount, /var/run/docker.sock, to the autoheal container so it can see and restart containers. This is powerful access, so only run autoheal on a trusted machine, and without the mount it simply cannot do its job. source
  • Label the containers you want healed Set AUTOHEAL_CONTAINER_LABEL (the marker autoheal looks for, like autoheal or all) and add that same label to the services you want protected, for example autoheal: "true". Each one should also have a Docker healthcheck (a built-in test that says whether the app is working), or autoheal can't tell it is unhealthy and will leave it alone. source
  • Wait for slow apps to boot Set AUTOHEAL_START_PERIOD to a few seconds or more if a service takes a while to start. This stops autoheal from checking too early and restarting a container that is still booting normally. source

Fetched 15 days ago - each note links to its source

Alternatives

No alternatives collected yet.

Common questions

What file system mount does docker-autoheal need to restart containers?

It needs the Docker socket mounted at /var/run/docker.sock so it can see and restart containers. This is powerful access, so run autoheal only on a trusted machine.

Which containers will autoheal monitor and restart?

A container must have the label set by AUTOHEAL_CONTAINER_LABEL, such as autoheal: true. It also needs a Docker healthcheck, because autoheal leaves containers without one alone.

How can I stop autoheal from restarting a container that is still starting up?

Set AUTOHEAL_START_PERIOD to a few seconds or more if the service boots slowly. This prevents autoheal from checking before the container has finished starting.

How do I use Apprise with docker-autoheal?

Configure Apprise according to the autoheal documentation so autoheal can use it. Apprise also needs a functional healthcheck for autoheal to determine whether it needs to be restarted.

Answers sourced from context7.com, www.reddit.com

Community

Collected 14 days ago - public community threads