immich/server/bin/immich-healthcheck
Sergey Katsubo 9677eb37e1
feat(server): log failed healthchecks to server container stderr in verbose mode (#18709)
* Log failed healthchecks to server container stderr in verbose mode

* Formatting: indentation, semicolons

* Readability: less escaping
2025-05-28 12:13:04 -05:00

31 lines
789 B
Bash
Executable File

#!/usr/bin/env bash
log_container_verbose() {
if [[ $IMMICH_LOG_LEVEL == verbose ]]; then
echo "$1" > /proc/1/fd/2
fi
}
if [[ ( $IMMICH_WORKERS_INCLUDE != '' && $IMMICH_WORKERS_INCLUDE != *api* ) || $IMMICH_WORKERS_EXCLUDE == *api* ]]; then
echo "API worker excluded, skipping"
exit 0
fi
IMMICH_HOST="${IMMICH_HOST:-localhost}"
IMMICH_PORT="${IMMICH_PORT:-2283}"
result=$(curl -fsS -m 2 http://"$IMMICH_HOST":"$IMMICH_PORT"/api/server/ping)
result_exit=$?
if [ $result_exit != 0 ]; then
echo "Fail: exit code is $result_exit"
log_container_verbose "Healthcheck failed: exit code $result_exit"
exit 1
fi
if [ "$result" != '{"res":"pong"}' ]; then
echo "Fail: didn't reply with pong"
log_container_verbose "Healthcheck failed: didn't reply with pong"
exit 1
fi