29 lines
1.3 KiB
Bash
29 lines
1.3 KiB
Bash
|
|
#!/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
|