Files

87 строки
1.4 KiB
Bash

#!/usr/bin/env bash
set -e
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"
docker --version || true
echo
echo "[INFO] Docker Compose"
docker compose version || true
echo
echo "[INFO] Containers"
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
echo "[INFO] Matrix Port"
ss -tulpn | grep 8008 || true
echo
echo "[INFO] Public HTTP/HTTPS Ports"
ss -tulpn | grep -E ':80|:443' || true
echo
echo "[INFO] Matrix Local Endpoint"
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
echo
echo "[INFO] Memory"
free -m
echo
echo "[DONE] SWChat/Pulse healthcheck complete"