BUH_bot/deploy-prod.bat
Игорь Надеин b7853637bc feat: Add CI/CD pipeline and deployment automation
GitHub Actions Workflow:
- Automatic build on push to main/develop
- Build on tags (v*.*.*)
- Multi-platform support (linux/amd64)
- Publish to ghcr.io registry
- Docker layer caching
- Metadata extraction for tags

Build Scripts (Linux + Windows):
- build-image.sh/bat: Build and publish to registry
- Registry authentication check
- Image testing before push
- Configurable registry (default: ghcr.io)

Deployment Scripts (Linux + Windows):
- deploy-prod.sh/bat: Production deployment automation
- Pre-deployment checks (.env.prod validation)
- Automatic backup before deploy
- Image pull and stack deployment
- Health check verification
- Rollback support
2025-11-03 14:21:19 +03:00

76 lines
2.4 KiB
Batchfile

@echo off
REM Скрипт для деплоя в production (Windows)
echo 🚀 Production Deploy - BUH Bot
echo.
REM Проверка .env.prod
if not exist .env.prod (
echo ❌ Файл .env.prod не найден!
echo Создайте файл на основе .env.prod.example:
echo copy .env.prod.example .env.prod
echo notepad .env.prod
exit /b 1
)
echo 🔍 Проверка конфигурации...
findstr /C:"TELEGRAM_BOT_TOKEN=your_production_bot_token_here" .env.prod >nul
if %errorlevel% equ 0 (
echo ❌ TELEGRAM_BOT_TOKEN не настроен в .env.prod
exit /b 1
)
echo ✅ Конфигурация корректна
REM Создание директорий
echo 📁 Создание директорий...
if not exist data mkdir data
if not exist logs mkdir logs
if not exist temp_documents mkdir temp_documents
REM Backup
if exist data\users.json (
echo 💾 Создание backup...
set BACKUP_DIR=backups\%date:~-4,4%%date:~-10,2%%date:~-7,2%_%time:~0,2%%time:~3,2%%time:~6,2%
set BACKUP_DIR=%BACKUP_DIR: =0%
mkdir %BACKUP_DIR%
copy data\*.* %BACKUP_DIR%\
echo ✅ Backup создан: %BACKUP_DIR%
)
REM Остановка существующих контейнеров
docker ps -a --format "{{.Names}}" | findstr "buh_bot" >nul
if %errorlevel% equ 0 (
echo 🛑 Остановка существующих контейнеров...
docker-compose -f docker-compose.prod.yml --env-file .env.prod down
)
REM Pull latest образов
echo 📥 Получение последних образов...
docker-compose -f docker-compose.prod.yml --env-file .env.prod pull
REM Запуск
echo 🚀 Запуск сервисов...
docker-compose -f docker-compose.prod.yml --env-file .env.prod up -d
REM Проверка статуса
timeout /t 5 /nobreak >nul
echo.
echo 📊 Статус сервисов:
docker-compose -f docker-compose.prod.yml --env-file .env.prod ps
echo.
echo ✅ Production деплой завершён!
echo.
echo 📝 Полезные команды:
echo Логи бота: docker-compose -f docker-compose.prod.yml logs -f buh_bot
echo Статус: docker-compose -f docker-compose.prod.yml ps
echo Остановка: docker-compose -f docker-compose.prod.yml down
echo.
echo 📊 Мониторинг:
echo Grafana: http://localhost:3000
echo Prometheus: http://localhost:9090
echo.
pause