From 02994d45a77124a0d48a6b6fd59d3b0373a754c4 Mon Sep 17 00:00:00 2001 From: SysAdmin Date: Wed, 24 Sep 2025 18:15:38 +0100 Subject: [PATCH] Add server-side TeleBot deployment script for manual execution --- telebot-server-deploy.sh | 115 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 telebot-server-deploy.sh diff --git a/telebot-server-deploy.sh b/telebot-server-deploy.sh new file mode 100644 index 0000000..9b56c6e --- /dev/null +++ b/telebot-server-deploy.sh @@ -0,0 +1,115 @@ +#!/bin/bash +# Run this script ON THE HOSTINGER SERVER after pulling latest code +# This builds TeleBot from source and deploys it with latest fixes + +set -e + +echo "🚀 TeleBot Server-Side Deployment Script" +echo "=========================================" + +# Navigate to deployment directory +cd /opt +echo "📁 Working directory: $(pwd)" + +# Clone or update repository +if [ -d "LittleShop" ]; then + echo "📦 Updating existing repository..." + cd LittleShop + git pull origin main +else + echo "📦 Cloning repository..." + git clone https://git.silverlabs.uk/SilverLABS/LittleShop.git + cd LittleShop +fi + +echo "✅ Repository updated" +git log --oneline -5 + +# Stop and remove existing TeleBot container +echo "🛑 Stopping existing TeleBot container..." +docker stop telebot 2>/dev/null || echo "No existing container to stop" +docker rm telebot 2>/dev/null || echo "No existing container to remove" + +# Remove old TeleBot image to force rebuild +echo "🗑️ Removing old TeleBot image..." +docker rmi telebot:latest 2>/dev/null || echo "No existing image to remove" + +# Build new image from source +echo "🔨 Building TeleBot from source code..." +echo "This will include all latest fixes including:" +echo " - Fixed duplicate /review case" +echo " - TeleBot compilation error fixes" +echo " - Improved shipping address collection" +echo " - Network connectivity improvements" + +docker build -t telebot:latest -f TeleBot/TeleBot/Dockerfile . + +if [ $? -eq 0 ]; then + echo "✅ Docker image built successfully" +else + echo "❌ Docker build failed" + exit 1 +fi + +# Create necessary directories +echo "📁 Creating data directories..." +mkdir -p /opt/telebot/logs +mkdir -p /opt/telebot/data +mkdir -p /opt/telebot/image_cache + +# Set proper permissions (assuming container user is UID 1001) +chown -R 1001:1001 /opt/telebot/logs +chown -R 1001:1001 /opt/telebot/data +chown -R 1001:1001 /opt/telebot/image_cache + +# Create .env file for TeleBot +echo "📝 Creating environment configuration..." +cat > /opt/telebot/.env << 'EOF' +# TeleBot Production Configuration +BOT_TOKEN=7569267607:AAFcXs3qeHqr_KKiGSb2EShJJLznNBXRfB8 +WEBHOOK_URL=https://telebot.thebankofdebbie.giize.com/api/telegram/webhook +LITTLESHOP_API_KEY=your-api-key-here +DATABASE_CONNECTION_STRING=Data Source=/app/data/telebot.db +LOG_LEVEL=Information +EOF + +# Run the new container +echo "🚀 Starting TeleBot container..." +docker run -d \ + --name telebot \ + --restart unless-stopped \ + --network littleshop-network \ + --env-file /opt/telebot/.env \ + -e ASPNETCORE_ENVIRONMENT=Production \ + -e LittleShopApi__BaseUrl=http://littleshop-admin:8080 \ + -e TelegramBot__UseWebhook=false \ + -e Logging__LogLevel__Default=Information \ + -e Logging__LogLevel__Microsoft=Warning \ + -v /opt/telebot/logs:/app/logs \ + -v /opt/telebot/data:/app/data \ + -v /opt/telebot/image_cache:/app/image_cache \ + telebot:latest + +# Wait for container to start +echo "⏳ Waiting for container to start..." +sleep 10 + +# Check container status +echo "📊 Container status:" +docker ps | grep telebot || echo "Container not running!" + +echo "" +echo "📋 Container logs (last 30 lines):" +docker logs --tail 30 telebot + +echo "" +echo "✅ Deployment complete!" +echo "" +echo "To monitor the bot:" +echo " docker logs -f telebot" +echo "" +echo "To check status:" +echo " docker ps | grep telebot" +echo "" +echo "Latest commits included:" +git log --oneline -5 \ No newline at end of file