#!/bin/bash set -eu HOST="${HEALTH_HOST:-127.0.0.1}" PORT="${HEALTH_PORT:-8080}" LIVENESS_PATH="${LIVENESS_PATH:-/health/liveness}" READINESS_PATH="${READINESS_PATH:-/health/readiness}" USER_AGENT="stellaops-healthcheck" fetch() { target_path="$1" url="http://${HOST}:${PORT}${target_path}" if command -v curl >/dev/null 2>&1; then curl -sf --max-time "${HEALTH_TIMEOUT:-4}" \ -H "User-Agent: ${USER_AGENT}" \ "$url" >/dev/null elif command -v wget >/dev/null 2>&1; then wget -qO- "$url" \ --header="User-Agent: ${USER_AGENT}" \ --timeout="${HEALTH_TIMEOUT:-4}" >/dev/null else # Fallback: bash /dev/tcp (liveness only, no HTTP headers) exec 3<>"/dev/tcp/${HOST}/${PORT}" && exec 3>&- fi } fail=0 if ! fetch "$LIVENESS_PATH"; then fail=1 fi if ! fetch "$READINESS_PATH"; then fail=1 fi exit "$fail"