#!/bin/bash # 🚀 Скрипт быстрого деплоя Biveki Day Bot # Автор: Biveki Development Team set -e # Остановка при ошибке echo "🚀 Начинаем деплой Biveki Day Bot..." # Проверка наличия Docker if ! command -v docker &> /dev/null; then echo "❌ Docker не установлен. Установите Docker и попробуйте снова." exit 1 fi # Проверка наличия Docker Compose if ! command -v docker-compose &> /dev/null; then echo "❌ Docker Compose не установлен. Установите Docker Compose и попробуйте снова." exit 1 fi # Проверка наличия файла stack.env if [ ! -f "stack.env" ]; then echo "❌ Файл stack.env не найден!" echo "📝 Создайте файл stack.env на основе stack.env.example" echo " cp stack.env.example stack.env" echo " nano stack.env" exit 1 fi # Проверка обязательных переменных echo "🔍 Проверяем переменные окружения..." if ! grep -q "DATABASE_URL=postgresql://" stack.env; then echo "❌ DATABASE_URL не настроен в stack.env" exit 1 fi if grep -q "your_bot_token_here" stack.env; then echo "❌ TELEGRAM_BOT_TOKEN не настроен в stack.env" exit 1 fi echo "✅ Переменные окружения проверены" # Остановка существующих контейнеров echo "🛑 Останавливаем существующие контейнеры..." docker-compose down --remove-orphans # Сборка и запуск echo "🔨 Собираем и запускаем приложение..." docker-compose up -d --build # Ожидание запуска echo "⏳ Ожидаем запуск приложения..." sleep 10 # Проверка статуса echo "📊 Проверяем статус контейнеров..." docker-compose ps # Проверка health check echo "🏥 Проверяем health check..." sleep 5 if curl -f http://localhost:3000/health > /dev/null 2>&1; then echo "✅ Health check прошел успешно!" else echo "⚠️ Health check не прошел, но это может быть нормально если приложение еще запускается" fi # Показываем логи echo "📋 Последние логи приложения:" docker-compose logs --tail=20 bivekidaybot echo "" echo "🎉 Деплой завершен!" echo "" echo "📱 Проверьте работу Telegram бота отправив команду /start" echo "🌐 Health check: http://localhost:3000/health" echo "📋 Логи: docker-compose logs -f bivekidaybot" echo "🛑 Остановка: docker-compose down" echo ""