# Автоматическое обновление Telegram Tinder Bot Этот документ описывает процесс автоматического обновления бота с помощью созданных скриптов. ## Скрипт обновления Скрипт обновления выполняет следующие действия: 1. Получает последние изменения из Git-репозитория 2. Устанавливает зависимости 3. Применяет миграции базы данных 4. Собирает проект 5. Проверяет наличие файла .env 6. Проверяет наличие Docker-сервисов 7. При запуске на Ubuntu: проверяет и перезапускает PM2 сервис ## Подробные инструкции по развертыванию Для подробных инструкций по развертыванию бота на сервере Ubuntu 24.04, пожалуйста, обратитесь к файлу `DEPLOY_UBUNTU.md` в корне проекта. ## Как использовать ### На Linux/macOS: ```bash # Обновление с ветки main (по умолчанию) npm run update # Обновление с определенной ветки bash ./bin/update.sh develop # Обновление с определенной ветки и перезапуском сервиса PM2 (для Ubuntu) bash ./bin/update.sh develop --restart-service ``` ### На Windows: ```powershell # Обновление с ветки main (по умолчанию) npm run update:win # Обновление с определенной ветки .\bin\update.bat develop ``` ## Добавление прав на выполнение (только для Linux/macOS) Если у вас возникают проблемы с запуском скрипта, добавьте права на выполнение: ```bash chmod +x ./bin/update.sh ``` ## Автоматизация обновлений Для автоматизации регулярных обновлений вы можете использовать cron (Linux/macOS) или Планировщик заданий (Windows). ### Пример cron-задания для Ubuntu (ежедневное обновление в 4:00 с перезапуском сервиса): ``` 0 4 * * * cd /opt/tg_tinder_bot && ./bin/update.sh --restart-service >> /var/log/tg_bot_update.log 2>&1 ``` ### Пример cron-задания (ежедневное обновление в 4:00 без перезапуска): ``` 0 4 * * * cd /path/to/bot && ./bin/update.sh ``` ### Для Windows: Создайте задачу в Планировщике заданий, которая запускает: ``` cmd.exe /c "cd /d D:\Projects\tg_tinder_bot && .\bin\update.bat" ``` ## Что делать после обновления После обновления вы можете: 1. Запустить бота: `npm run start` 2. Запустить бота в режиме разработки: `npm run dev` 3. Перезапустить Docker-контейнеры, если используете Docker: `docker-compose down && docker-compose up -d`