
✨ Изменения: - Добавлен файл REPOSITORY.md с информацией о репозитории - Обновлены ссылки в DEPLOY.md на правильный URL репозитория - Исправлена проверка TELEGRAM_BOT_TOKEN в deploy.sh - Добавлена информация о клонировании и работе с репозиторием 🔗 Репозиторий: https://gittea.biveki.ru/BivekiGroup/bivekidaybot
158 lines
4.5 KiB
Markdown
158 lines
4.5 KiB
Markdown
# 🚀 Инструкция по деплою Biveki Day Bot
|
||
|
||
## 📋 Подготовка к деплою
|
||
|
||
### 1. Переменные окружения
|
||
|
||
Убедитесь, что в файле `stack.env` указаны правильные значения:
|
||
|
||
```env
|
||
# Основные настройки приложения
|
||
NODE_ENV=production
|
||
PORT=3000
|
||
TZ=Europe/Moscow
|
||
|
||
# База данных (ваша облачная PostgreSQL)
|
||
DATABASE_URL=postgresql://username:password@host:port/database
|
||
|
||
# Telegram Bot Token
|
||
TELEGRAM_BOT_TOKEN=your_real_bot_token_here
|
||
|
||
# Дополнительные настройки для продакшена
|
||
LOG_LEVEL=info
|
||
MAX_CONNECTIONS=10
|
||
```
|
||
|
||
### 2. Обязательные переменные для изменения:
|
||
|
||
- `DATABASE_URL` - URL вашей облачной PostgreSQL базы данных
|
||
- `TELEGRAM_BOT_TOKEN` - токен вашего Telegram бота
|
||
|
||
## 🐳 Деплой через Docker Compose
|
||
|
||
### Команды для деплоя:
|
||
|
||
```bash
|
||
# 1. Клонируйте репозиторий (если еще не сделали)
|
||
git clone https://gittea.biveki.ru/BivekiGroup/bivekidaybot.git
|
||
cd bivekidaybot
|
||
|
||
# 2. Убедитесь, что stack.env настроен правильно
|
||
nano stack.env
|
||
|
||
# 3. Соберите и запустите контейнер
|
||
docker-compose up -d --build
|
||
|
||
# 4. Проверьте статус
|
||
docker-compose ps
|
||
|
||
# 5. Посмотрите логи
|
||
docker-compose logs -f bivekidaybot
|
||
```
|
||
|
||
### Управление контейнером:
|
||
|
||
```bash
|
||
# Остановить контейнер
|
||
docker-compose down
|
||
|
||
# Перезапустить контейнер
|
||
docker-compose restart bivekidaybot
|
||
|
||
# Обновить приложение
|
||
git pull
|
||
docker-compose up -d --build
|
||
|
||
# Посмотреть логи
|
||
docker-compose logs -f bivekidaybot
|
||
|
||
# Войти в контейнер для отладки
|
||
docker-compose exec bivekidaybot sh
|
||
```
|
||
|
||
## 🔍 Проверка работоспособности
|
||
|
||
1. **Health Check**: `http://your-server:3000/health`
|
||
2. **Telegram Bot**: Отправьте `/start` боту
|
||
3. **Логи**: `docker-compose logs bivekidaybot`
|
||
|
||
## 📊 Мониторинг
|
||
|
||
### Проверка статуса контейнера:
|
||
```bash
|
||
docker-compose ps
|
||
```
|
||
|
||
### Просмотр ресурсов:
|
||
```bash
|
||
docker stats bivekidaybot-app
|
||
```
|
||
|
||
### Проверка health check:
|
||
```bash
|
||
curl http://localhost:3000/health
|
||
```
|
||
|
||
## 🔧 Настройки для продакшена
|
||
|
||
### Рекомендуемые изменения в stack.env:
|
||
|
||
```env
|
||
# Для продакшена рекомендуется отключить synchronize в TypeORM
|
||
NODE_ENV=production
|
||
|
||
# Настройте правильный часовой пояс
|
||
TZ=Europe/Moscow
|
||
|
||
# Ограничьте количество подключений к БД
|
||
MAX_CONNECTIONS=10
|
||
```
|
||
|
||
## 🚨 Устранение неполадок
|
||
|
||
### Проблемы с базой данных:
|
||
1. Проверьте правильность `DATABASE_URL`
|
||
2. Убедитесь, что БД доступна извне
|
||
3. Проверьте настройки SSL для облачной БД
|
||
|
||
### Проблемы с Telegram ботом:
|
||
1. Проверьте правильность `TELEGRAM_BOT_TOKEN`
|
||
2. Убедитесь, что токен активен
|
||
3. Проверьте, что бот не используется в другом месте
|
||
|
||
### Логи и отладка:
|
||
```bash
|
||
# Подробные логи
|
||
docker-compose logs -f --tail=100 bivekidaybot
|
||
|
||
# Войти в контейнер
|
||
docker-compose exec bivekidaybot sh
|
||
|
||
# Перезапуск с полной пересборкой
|
||
docker-compose down
|
||
docker-compose up -d --build --force-recreate
|
||
```
|
||
|
||
## 🔄 Обновление приложения
|
||
|
||
```bash
|
||
# 1. Остановить контейнер
|
||
docker-compose down
|
||
|
||
# 2. Получить последние изменения
|
||
git pull
|
||
|
||
# 3. Пересобрать и запустить
|
||
docker-compose up -d --build
|
||
|
||
# 4. Проверить статус
|
||
docker-compose ps
|
||
docker-compose logs -f bivekidaybot
|
||
```
|
||
|
||
## 📝 Примечания
|
||
|
||
- База данных не включена в Docker Compose, так как используется облачная
|
||
- Контейнер автоматически перезапускается при сбоях
|
||
- Health check проверяет работоспособность каждые 30 секунд
|
||
- Логи ротируются автоматически (максимум 3 файла по 10MB) |