homelab-codex-ws/services/paperless-worker/healthcheck.sh

29 lines
1.3 KiB
Bash
Raw Normal View History

#!/bin/bash
# Healthcheck for paperless-worker (OCR worker on SOLARIA -> broker @ PIHA)
#
# NOTE: SOLARIA is session-availability. This script reports the worker's
# health while the host is up; the worker being absent because SOLARIA is
# off is a normal state handled by the queue on PIHA, not a failure here.
# Container must be running
if ! docker ps --filter "name=paperless-worker" --filter "status=running" | grep -qw "paperless-worker"; then
echo "[FAIL] paperless-worker container is not running"
exit 1
fi
# Worker must answer a celery ping via the broker on PIHA — proves both
# broker connectivity (192.168.31.5:6380) and a live worker process.
if ! docker exec paperless-worker celery --app paperless inspect ping --timeout 10 2>/dev/null | grep -q "pong"; then
echo "[FAIL] celery worker does not answer ping (broker @ 192.168.31.5:6380 unreachable or worker dead)"
exit 1
fi
# NFS storage from PIHA must be readable AND writable (UID mapping check)
if ! docker exec paperless-worker sh -c 'touch /usr/src/paperless/media/.nfs-write-test && rm /usr/src/paperless/media/.nfs-write-test' 2>/dev/null; then
echo "[FAIL] NFS media mount from PIHA is not writable (mount down or UID mismatch)"
exit 1
fi
echo "[OK] paperless-worker is healthy"
exit 0