35 lines
1.2 KiB
Bash
Executable file
35 lines
1.2 KiB
Bash
Executable file
#!/bin/bash
|
|
# Healthcheck for Paperless-ngx (web + db + broker) on PIHA
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
# Ports are bound to the LAN interface only, so localhost won't answer.
|
|
# Read the bind IP from .env (same file compose uses for the port mapping).
|
|
if [ -f "$SCRIPT_DIR/.env" ]; then
|
|
# shellcheck disable=SC1091
|
|
source "$SCRIPT_DIR/.env"
|
|
fi
|
|
BIND_IP="${LAN_BIND_IP:-127.0.0.1}"
|
|
|
|
for c in paperless paperless-db paperless-broker; do
|
|
if ! docker ps --filter "name=$c" --filter "status=running" | grep -qw "$c"; then
|
|
echo "[FAIL] $c container is not running"
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
# Web UI must respond (login page redirect counts — follow it)
|
|
if ! curl -sfL --max-time 10 "http://${BIND_IP}:8210/" > /dev/null; then
|
|
echo "[FAIL] paperless web is not responding on ${BIND_IP}:8210"
|
|
exit 1
|
|
fi
|
|
|
|
# Redis broker must answer on the LAN bind (the SOLARIA worker depends on it)
|
|
if ! docker exec paperless-broker redis-cli -h "${BIND_IP}" -p 6380 ping | grep -q PONG; then
|
|
echo "[FAIL] redis broker is not answering on ${BIND_IP}:6380 (worker@SOLARIA cannot connect)"
|
|
exit 1
|
|
fi
|
|
|
|
echo "[OK] paperless is healthy"
|
|
exit 0
|