unpoller_unpoller/init/docker
Cody Lee b960695f3b
Add Docker health check support
Implements #406 by adding a --health CLI flag and HEALTHCHECK instruction
to the Dockerfile. This allows Docker and container orchestration platforms
to monitor container health automatically.

Changes:
- Added --health flag that validates configuration and plugin connectivity
- Implemented HealthCheck() method in pkg/poller/commands.go
- Updated Dockerfile with HEALTHCHECK instruction (30s interval, 10s timeout)
- Updated MANUAL.md with --health flag documentation
- Added health check documentation to Docker README
- Added comments to docker-compose examples about built-in health check

The health check:
- Validates configuration file is found and parseable
- Ensures at least one input and one enabled output are configured
- Performs basic validation on enabled outputs
- Returns exit code 0 (healthy) or 1 (unhealthy)
- Runs silently for Docker compatibility

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-08 13:09:10 -06:00
..
README.md Add Docker health check support 2025-12-08 13:09:10 -06:00
docker-compose.env.example fixed start loop 2022-12-11 13:00:40 -06:00
docker-compose.yml Add Docker health check support 2025-12-08 13:09:10 -06:00

README.md

Docker Compose

The files in this folder can be used locally to spin up a full set of applications (minus the UniFi controller) to get UniFi Poller up and running. Including InfluxDB, Grafana, and Chronograph. This last app is useful to inspect the data stored in InfluxDB by UniFi Poller.

HOWTO

Learn more about how and when to use these Docker Compose files in the Docker Wiki.

Health Check

The UniFi Poller Docker image includes a built-in health check that validates the configuration and checks plugin connectivity. The health check runs every 30 seconds and marks the container as unhealthy if configuration issues are detected or if enabled outputs cannot be reached.

You can manually run the health check:

docker exec <container_name> /usr/bin/unpoller --health

The health check is automatically used by Docker and container orchestration platforms (Kubernetes, Docker Swarm, etc.) to determine container health status.