claude-code-remote-remake/test-telegram-setup.sh

122 lines
3.4 KiB
Bash
Executable File

#!/bin/bash
# Claude Code Remote - Telegram Setup Test Script
# This script tests all components of the Telegram setup
echo "🧪 Claude Code Remote - Telegram Setup Test"
echo "==========================================="
# Load environment variables
if [ -f ".env" ]; then
echo "✅ .env file found"
source .env
else
echo "❌ .env file not found"
exit 1
fi
# Check required environment variables
if [ -z "$TELEGRAM_BOT_TOKEN" ]; then
echo "❌ TELEGRAM_BOT_TOKEN not set in .env"
exit 1
else
echo "✅ TELEGRAM_BOT_TOKEN found"
fi
if [ -z "$TELEGRAM_CHAT_ID" ]; then
echo "❌ TELEGRAM_CHAT_ID not set in .env"
exit 1
else
echo "✅ TELEGRAM_CHAT_ID found"
fi
if [ -z "$TELEGRAM_WEBHOOK_URL" ]; then
echo "❌ TELEGRAM_WEBHOOK_URL not set in .env"
exit 1
else
echo "✅ TELEGRAM_WEBHOOK_URL found: $TELEGRAM_WEBHOOK_URL"
fi
# Test Telegram bot connection
echo ""
echo "🔧 Testing Telegram bot connection..."
response=$(curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-H "Content-Type: application/json" \
-d "{\"chat_id\": $TELEGRAM_CHAT_ID, \"text\": \"🧪 Setup test from Claude Code Remote\"}")
if echo "$response" | grep -q '"ok":true'; then
echo "✅ Telegram bot connection successful"
else
echo "❌ Telegram bot connection failed"
echo "Response: $response"
exit 1
fi
# Check webhook status
echo ""
echo "🔧 Checking webhook status..."
webhook_response=$(curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getWebhookInfo")
if echo "$webhook_response" | grep -q "$TELEGRAM_WEBHOOK_URL"; then
echo "✅ Webhook is correctly set"
else
echo "⚠️ Webhook not set to expected URL"
echo "Expected: $TELEGRAM_WEBHOOK_URL"
echo "Response: $webhook_response"
fi
# Check if claude-hooks.json exists
if [ -f "claude-hooks.json" ]; then
echo "✅ claude-hooks.json found"
else
echo "❌ claude-hooks.json not found"
exit 1
fi
# Test notification script
echo ""
echo "🔧 Testing notification script..."
node claude-hook-notify.js completed
# Check if required processes are running
echo ""
echo "🔧 Checking running processes..."
if pgrep -f "ngrok" > /dev/null; then
echo "✅ ngrok is running"
else
echo "⚠️ ngrok not found - make sure to run: ngrok http 3001"
fi
if pgrep -f "start-telegram-webhook" > /dev/null; then
echo "✅ Telegram webhook service is running"
else
echo "⚠️ Telegram webhook service not running - run: node start-telegram-webhook.js"
fi
# Check tmux sessions
echo ""
echo "🔧 Checking tmux sessions..."
if command -v tmux >/dev/null 2>&1; then
if tmux list-sessions 2>/dev/null | grep -q "claude-code"; then
echo "✅ claude-code tmux session found"
else
echo "⚠️ claude-code tmux session not found - create with: tmux new-session -s claude-code"
fi
else
echo "⚠️ tmux not installed"
fi
echo ""
echo "📋 Setup Test Summary:"
echo "====================="
echo "If all items above show ✅, your setup is ready!"
echo ""
echo "Next steps:"
echo "1. Make sure ngrok is running: ngrok http 3001"
echo "2. Make sure webhook service is running: node start-telegram-webhook.js"
echo "3. Start Claude in tmux with hooks:"
echo " tmux attach -t claude-code"
echo " export CLAUDE_HOOKS_CONFIG=$(pwd)/claude-hooks.json"
echo " claude"
echo ""
echo "Test by running a task in Claude - you should get a Telegram notification!"