- Update ASR, face, OCR, pose processors - Add release pre-flight check script - Add synonym generation, chunk processing scripts - Add face recognition, stamp search utilities
163 lines
3.8 KiB
Bash
Executable File
163 lines
3.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# Momentry v1.0.0 Release Pre-flight Check
|
|
# Checks all required services and models before deployment
|
|
|
|
set -e
|
|
|
|
PASS=0
|
|
FAIL=0
|
|
WARN=0
|
|
|
|
check() {
|
|
local name="$1"
|
|
local cmd="$2"
|
|
if eval "$cmd" > /dev/null 2>&1; then
|
|
echo "✓ $name"
|
|
PASS=$((PASS + 1))
|
|
else
|
|
echo "✗ $name FAILED"
|
|
FAIL=$((FAIL + 1))
|
|
fi
|
|
}
|
|
|
|
warn() {
|
|
local name="$1"
|
|
echo "⚠ $name (non-critical)"
|
|
WARN=$((WARN + 1))
|
|
}
|
|
|
|
echo "====================================="
|
|
echo "Momentry v1.0.0 Pre-flight Check"
|
|
echo "Date: $(date '+%Y-%m-%d %H:%M:%S')"
|
|
echo "====================================="
|
|
echo ""
|
|
|
|
# --- Core Services ---
|
|
echo "--- Core Services ---"
|
|
|
|
# PostgreSQL
|
|
check "PostgreSQL" "pg_isready -U accusys -h localhost"
|
|
|
|
# Redis
|
|
check "Redis" "redis-cli -a accusys PING"
|
|
|
|
# MongoDB
|
|
check "MongoDB" "mongosh --quiet --eval 'db.runCommand({ping:1})'"
|
|
|
|
# Qdrant (requires API key)
|
|
QDRANT_API_KEY="${QDRANT_API_KEY:-Test3200Test3200Test3200}"
|
|
check "Qdrant (port 6333)" "curl -sf -H 'api-key: $QDRANT_API_KEY' http://localhost:6333/collections"
|
|
|
|
echo ""
|
|
|
|
# --- Inference Engines ---
|
|
echo "--- Inference Engines ---"
|
|
|
|
# Ollama
|
|
if curl -sf http://localhost:11434/api/tags > /dev/null 2>&1; then
|
|
check "Ollama (port 11434)" "true"
|
|
# Check specific model
|
|
if curl -sf http://localhost:11434/api/tags | grep -q "nomic-embed-text"; then
|
|
check " Model: nomic-embed-text" "true"
|
|
else
|
|
warn " Model: nomic-embed-text not found"
|
|
fi
|
|
else
|
|
FAIL=$((FAIL + 2))
|
|
echo "✗ Ollama (port 11433) FAILED"
|
|
echo "✗ Model: nomic-embed-text (Ollama not running)"
|
|
fi
|
|
|
|
# llama-server
|
|
if curl -sf http://localhost:8081/v1/models > /dev/null 2>&1; then
|
|
check "llama-server (port 8081)" "true"
|
|
if curl -sf http://localhost:8081/v1/models | grep -q "gemma4"; then
|
|
check " Model: gemma4_e4b_q5" "true"
|
|
else
|
|
warn " Model: gemma4_e4b_q5 not detected"
|
|
fi
|
|
else
|
|
FAIL=$((FAIL + 2))
|
|
echo "✗ llama-server (port 8081) FAILED"
|
|
echo "✗ Model: gemma4_e4b_q5 (llama-server not running)"
|
|
fi
|
|
|
|
echo ""
|
|
|
|
# --- External Tools ---
|
|
echo "--- External Tools ---"
|
|
|
|
check "ffmpeg" "command -v ffmpeg"
|
|
check "ffprobe" "command -v ffprobe"
|
|
|
|
PYTHON_PATH="${MOMENTRY_PYTHON_PATH:-/opt/homebrew/bin/python3.11}"
|
|
check "Python 3.11 ($PYTHON_PATH)" "test -f $PYTHON_PATH"
|
|
|
|
echo ""
|
|
|
|
# --- File Services ---
|
|
echo "--- File Services ---"
|
|
|
|
check "SFTPGo (port 8080)" "curl -sf http://localhost:8080/"
|
|
|
|
# Check demo user data directory
|
|
if [ -d "/Users/accusys/momentry/var/sftpgo/data/demo" ]; then
|
|
check "SFTPGo demo data directory" "true"
|
|
else
|
|
warn "SFTPGo demo data directory not found"
|
|
fi
|
|
|
|
echo ""
|
|
|
|
# --- Environment ---
|
|
echo "--- Environment ---"
|
|
|
|
# Check .env file for production
|
|
if [ -f ".env" ]; then
|
|
check ".env file exists" "true"
|
|
else
|
|
warn ".env file not found (using defaults)"
|
|
fi
|
|
|
|
# Check port 3002 availability
|
|
if lsof -i :3002 > /dev/null 2>&1; then
|
|
warn "Port 3002 in use (existing production service running)"
|
|
else
|
|
check "Port 3002 available" "true"
|
|
fi
|
|
|
|
# Check port 3003 availability
|
|
if lsof -i :3003 > /dev/null 2>&1; then
|
|
warn "Port 3003 in use (playground running)"
|
|
else
|
|
check "Port 3003 available" "true"
|
|
fi
|
|
|
|
echo ""
|
|
|
|
# --- Disk Space ---
|
|
echo "--- Disk Space ---"
|
|
|
|
DISK_USAGE=$(df -h / | awk 'NR==2 {print $5}' | tr -d '%')
|
|
if [ "$DISK_USAGE" -lt 90 ]; then
|
|
check "Disk usage: ${DISK_USAGE}%" "true"
|
|
else
|
|
FAIL=$((FAIL + 1))
|
|
echo "✗ Disk usage: ${DISK_USAGE}% (CRITICAL - >90%)"
|
|
fi
|
|
|
|
echo ""
|
|
echo "====================================="
|
|
echo "Summary: $PASS passed, $FAIL failed, $WARN warnings"
|
|
echo "====================================="
|
|
|
|
if [ "$FAIL" -gt 0 ]; then
|
|
echo ""
|
|
echo "CRITICAL: $FAIL service(s) failed. Do NOT proceed with release."
|
|
exit 1
|
|
else
|
|
echo ""
|
|
echo "All critical services ready. Safe to proceed with release."
|
|
exit 0
|
|
fi
|