🚀 Initial commit: Biveki Day Bot with Docker deployment
✨ Features: - 🤖 Telegram bot for task management between programmer and girlfriend - 📝 Task creation with types (personal/shared) and priorities - ⏰ Time-based reminders and notifications - 📊 Statistics and progress tracking - 🤝 Shared tasks for couples 🛠 Tech Stack: - Backend: NestJS + TypeScript - Database: PostgreSQL + TypeORM - Bot: Telegraf - Deployment: Docker + Docker Compose 🐳 Docker Deployment: - Multi-stage Dockerfile for optimized builds - Docker Compose with environment variables - Health checks and automatic restarts - Production-ready configuration 📦 Files included: - Complete NestJS application - Docker deployment configuration - Environment variables setup - Deployment scripts and documentation - Health monitoring and logging
This commit is contained in:
158
DEPLOY.md
Normal file
158
DEPLOY.md
Normal file
@ -0,0 +1,158 @@
|
||||
# 🚀 Инструкция по деплою 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 <your-repo-url>
|
||||
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)
|
Reference in New Issue
Block a user