Lightweight health-check daemon for watching HTTP and TCP endpoints, aggregating results, and firing simple alert hooks.
simple-healthd is part of SimpleDaemons. v1.0.0 is the production contract cut after the 0.x milestone series. Versions follow VERSIONING.md.
| Area | State |
|---|---|
| Build, tests, CPack packaging | Implemented |
| TCP / HTTP / HTTPS / cert / process / ICMP / script checks | Implemented |
| Scheduler + concurrent workers | Implemented |
/healthz + /status (TLS, ACL, rate limit, idle timeout) |
Implemented |
| Log / webhook / SMTP alerts | Implemented |
| SQLite history + flap detection | Implemented |
| Privilege drop + service units | Implemented |
healthctl list / run / status / healthz |
Implemented |
- One process, one host; run under systemd / launchd / a Windows service (
--daemondoes not fork). - Known limits: no distributed probe mesh; no PromQL-style rules engine; email is SMTP send, not a mail server.
Guides, CLI reference, configuration, diagrams, and production notes: docs/README.md. Prefer project/PROGRESS_REPORT.md when docs disagree.
Requires CMake 3.16+ and a C++17 compiler. OpenSSL is recommended for HTTPS.
# GNU Make (use gmake on FreeBSD)
make build
make test
# or
cmake -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTS=ON
cmake --build build
ctest --test-dir build --output-on-failureStatic, self-contained binaries:
cmake -B build -DENABLE_STATIC_LINKING=ON
cmake --build buildPlatform scripts: scripts/build-linux.sh, scripts/build-macos.sh, scripts/build-windows.bat.
Development uses 18080 so root is not required. Production templates use 8080.
./build/simple-healthd --help
./build/simple-healthd --version
./build/simple-healthd --test-config --config config/templates/development.conf
./build/simple-healthd --foreground --config config/templates/development.conf
./build/healthctl --help
./build/healthctl --config config/templates/development.conf list
./build/healthctl --config config/templates/development.conf run <check-name>Install packages drop a unit that runs --foreground --config /etc/simple-healthd/simple-healthd.conf. Use the OS supervisor for start/stop/restart.
include/simple-healthd/ public headers (core, check, config, cli)
src/simple-healthd/ library sources
main/ simple-healthd + healthctl
config/ examples and templates
docs/ getting started, CLI, architecture, production
packaging/ linux, macos, windows, freebsd
deployment/ systemd, launchd, Windows service, Docker
Apache License 2.0. See LICENSE.