diff --git a/scripts/healthcheck.sh b/scripts/healthcheck.sh index 4bbad44..7c67713 100644 --- a/scripts/healthcheck.sh +++ b/scripts/healthcheck.sh @@ -2,7 +2,16 @@ set -e -echo "== SWChat Healthcheck ==" +ENV_FILE="${ENV_FILE:-/opt/swchat/.env}" +SERVER_NAME="matrix.stackworks.ru" +MATRIX_BIND_HOST="127.0.0.1" + +if [ -f "$ENV_FILE" ]; then + # shellcheck disable=SC1090 + . "$ENV_FILE" +fi + +echo "== SWChat/Pulse Healthcheck ==" echo echo "[INFO] Docker" @@ -16,7 +25,13 @@ docker compose version || true echo echo "[INFO] Containers" -docker ps || true +docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}' || true + +echo + +echo "[INFO] Matrix Bind" +echo "SERVER_NAME=${SERVER_NAME}" +echo "MATRIX_BIND_HOST=${MATRIX_BIND_HOST}" echo @@ -35,6 +50,29 @@ curl -s http://127.0.0.1:8008/_matrix/client/versions || true echo +echo "[INFO] Matrix Bound Endpoint" +if [ "$MATRIX_BIND_HOST" != "127.0.0.1" ]; then + curl -s "http://${MATRIX_BIND_HOST}:8008/_matrix/client/versions" || true +else + echo "MATRIX_BIND_HOST is localhost-only, skipping private LAN endpoint check" +fi + +echo + +echo "[INFO] Public Matrix HTTPS Endpoint" +curl -s "https://${SERVER_NAME}/_matrix/client/versions" || true + +echo + +echo "[INFO] UFW" +if command -v ufw >/dev/null 2>&1; then + ufw status numbered || true +else + echo "ufw not installed" +fi + +echo + echo "[INFO] Disk Usage" df -h @@ -45,4 +83,4 @@ free -m echo -echo "[DONE] SWChat healthcheck complete" +echo "[DONE] SWChat/Pulse healthcheck complete"