# Деплой Telegram Tinder Bot на Ubuntu 24.04 Это руководство поможет вам настроить и развернуть Telegram Tinder Bot на сервере с Ubuntu 24.04. ## Предварительные требования - Сервер с Ubuntu 24.04 - Права администратора (sudo) - Доменное имя (опционально, для SSL) ## Шаг 1: Подготовка сервера ```bash # Обновите систему sudo apt update && sudo apt upgrade -y # Установите необходимые пакеты sudo apt install -y curl wget git build-essential postgresql postgresql-contrib nginx # Установите Node.js и npm curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs # Проверьте установку node --version npm --version ``` ## Шаг 2: Настройка PostgreSQL ```bash # Запустите и включите PostgreSQL sudo systemctl start postgresql sudo systemctl enable postgresql # Подключитесь к PostgreSQL sudo -u postgres psql # В консоли PostgreSQL создайте базу данных и пользователя CREATE DATABASE tg_tinder_bot; CREATE USER tg_bot WITH PASSWORD 'сложный_пароль'; GRANT ALL PRIVILEGES ON DATABASE tg_tinder_bot TO tg_bot; \q # Проверьте подключение psql -h localhost -U tg_bot -d tg_tinder_bot # Введите пароль, когда будет запрошено ``` ## Шаг 3: Клонирование репозитория и установка зависимостей ```bash # Создайте директорию для бота sudo mkdir -p /opt/tg_tinder_bot sudo chown $USER:$USER /opt/tg_tinder_bot # Клонируйте репозиторий git clone https://your-git-repo-url.git /opt/tg_tinder_bot cd /opt/tg_tinder_bot # Установите зависимости npm ci # Сделайте скрипты исполняемыми chmod +x bin/update.sh ``` ## Шаг 4: Настройка окружения ```bash # Создайте файл .env из примера cp .env.example .env # Отредактируйте файл .env nano .env # Укажите следующие параметры: # BOT_TOKEN=your_telegram_bot_token # DB_HOST=localhost # DB_PORT=5432 # DB_USER=tg_bot # DB_PASSWORD=сложный_пароль # DB_NAME=tg_tinder_bot # и другие необходимые параметры ``` ## Шаг 5: Инициализация базы данных и сборка проекта ```bash # Запустите миграции npm run migrate:up # Соберите проект npm run build ``` ## Шаг 6: Настройка PM2 для управления процессами ```bash # Установите PM2 глобально sudo npm install -g pm2 # Запустите бота через PM2 pm2 start dist/bot.js --name tg_tinder_bot # Настройте автозапуск PM2 pm2 startup # Выполните команду, которую выдаст предыдущая команда # Сохраните конфигурацию PM2 pm2 save ``` ## Шаг 7: Настройка Nginx (если нужен веб-интерфейс) ```bash # Создайте конфигурационный файл Nginx sudo nano /etc/nginx/sites-available/tg_tinder_bot # Добавьте следующее содержимое # server { # listen 80; # server_name ваш-домен.com; # # location / { # proxy_pass http://localhost:3000; # Замените на порт вашего веб-интерфейса # proxy_http_version 1.1; # proxy_set_header Upgrade $http_upgrade; # proxy_set_header Connection 'upgrade'; # proxy_set_header Host $host; # proxy_cache_bypass $http_upgrade; # } # } # Создайте символьную ссылку sudo ln -s /etc/nginx/sites-available/tg_tinder_bot /etc/nginx/sites-enabled/ # Проверьте конфигурацию Nginx sudo nginx -t # Перезапустите Nginx sudo systemctl restart nginx ``` ## Шаг 8: Настройка SSL с Certbot (опционально, но рекомендуется) ```bash # Установите Certbot sudo apt install -y certbot python3-certbot-nginx # Получите SSL-сертификат sudo certbot --nginx -d ваш-домен.com # Certbot автоматически обновит конфигурацию Nginx ``` ## Шаг 9: Настройка автоматического обновления ```bash # Отредактируйте crontab crontab -e # Добавьте строку для ежедневного обновления в 4:00 0 4 * * * cd /opt/tg_tinder_bot && ./bin/update.sh >> /var/log/tg_bot_update.log 2>&1 ``` ## Управление ботом ```bash # Перезапустить бота pm2 restart tg_tinder_bot # Остановить бота pm2 stop tg_tinder_bot # Посмотреть логи pm2 logs tg_tinder_bot # Посмотреть статус pm2 status ``` ## Обновление вручную ```bash cd /opt/tg_tinder_bot ./bin/update.sh ``` ## Резервное копирование базы данных ```bash # Создайте директорию для резервных копий mkdir -p ~/backups # Создайте резервную копию pg_dump -U tg_bot tg_tinder_bot > ~/backups/tg_tinder_bot_$(date +%Y%m%d).sql # Автоматическое резервное копирование (добавьте в crontab) # 0 3 * * * pg_dump -U tg_bot tg_tinder_bot > ~/backups/tg_tinder_bot_$(date +%Y%m%d).sql && find ~/backups -name "tg_tinder_bot_*.sql" -mtime +7 -delete ``` ## Решение проблем ### Проблемы с базой данных Проверьте журналы PostgreSQL: ```bash sudo tail -f /var/log/postgresql/postgresql-*.log ``` ### Проблемы с ботом Проверьте журналы PM2: ```bash pm2 logs tg_tinder_bot ``` ### Проблемы с Nginx Проверьте журналы Nginx: ```bash sudo tail -f /var/log/nginx/error.log ```