Skip to content

About

Simple Health Daemon [simple-healthd]

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

simple-healthd

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.

Status (v1.0.0)

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

1.0 contract

  • One process, one host; run under systemd / launchd / a Windows service (--daemon does not fork).
  • Known limits: no distributed probe mesh; no PromQL-style rules engine; email is SMTP send, not a mail server.

Documentation

Guides, CLI reference, configuration, diagrams, and production notes: docs/README.md. Prefer project/PROGRESS_REPORT.md when docs disagree.

Build

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-failure

Static, self-contained binaries:

cmake -B build -DENABLE_STATIC_LINKING=ON
cmake --build build

Platform scripts: scripts/build-linux.sh, scripts/build-macos.sh, scripts/build-windows.bat.

Run

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.

Layout

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

License

Apache License 2.0. See LICENSE.

About

Simple Health Daemon [simple-healthd]

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages