6.1 KiB
6.1 KiB
Деплой Telegram Tinder Bot на Ubuntu 24.04
Это руководство поможет вам настроить и развернуть Telegram Tinder Bot на сервере с Ubuntu 24.04.
Предварительные требования
- Сервер с Ubuntu 24.04
- Права администратора (sudo)
- Доменное имя (опционально, для SSL)
Шаг 1: Подготовка сервера
# Обновите систему
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
# Запустите и включите 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: Клонирование репозитория и установка зависимостей
# Создайте директорию для бота
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: Настройка окружения
# Создайте файл .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: Инициализация базы данных и сборка проекта
# Запустите миграции
npm run migrate:up
# Соберите проект
npm run build
Шаг 6: Настройка PM2 для управления процессами
# Установите PM2 глобально
sudo npm install -g pm2
# Запустите бота через PM2
pm2 start dist/bot.js --name tg_tinder_bot
# Настройте автозапуск PM2
pm2 startup
# Выполните команду, которую выдаст предыдущая команда
# Сохраните конфигурацию PM2
pm2 save
Шаг 7: Настройка Nginx (если нужен веб-интерфейс)
# Создайте конфигурационный файл 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 (опционально, но рекомендуется)
# Установите Certbot
sudo apt install -y certbot python3-certbot-nginx
# Получите SSL-сертификат
sudo certbot --nginx -d ваш-домен.com
# Certbot автоматически обновит конфигурацию Nginx
Шаг 9: Настройка автоматического обновления
# Отредактируйте crontab
crontab -e
# Добавьте строку для ежедневного обновления в 4:00
0 4 * * * cd /opt/tg_tinder_bot && ./bin/update.sh >> /var/log/tg_bot_update.log 2>&1
Управление ботом
# Перезапустить бота
pm2 restart tg_tinder_bot
# Остановить бота
pm2 stop tg_tinder_bot
# Посмотреть логи
pm2 logs tg_tinder_bot
# Посмотреть статус
pm2 status
Обновление вручную
cd /opt/tg_tinder_bot
./bin/update.sh
Резервное копирование базы данных
# Создайте директорию для резервных копий
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:
sudo tail -f /var/log/postgresql/postgresql-*.log
Проблемы с ботом
Проверьте журналы PM2:
pm2 logs tg_tinder_bot
Проблемы с Nginx
Проверьте журналы Nginx:
sudo tail -f /var/log/nginx/error.log