mass refactor
This commit is contained in:
221
docs/DEPLOY_UBUNTU.md
Normal file
221
docs/DEPLOY_UBUNTU.md
Normal file
@@ -0,0 +1,221 @@
|
||||
# Деплой 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
|
||||
```
|
||||
Reference in New Issue
Block a user