Files
tg_tinder_bot/docs/DEPLOY_UBUNTU.md
2025-09-18 08:31:14 +09:00

6.1 KiB
Raw Permalink Blame History

Деплой 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