
✨ 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
4.5 KiB
4.5 KiB
🚀 Инструкция по деплою Biveki Day Bot
📋 Подготовка к деплою
1. Переменные окружения
Убедитесь, что в файле stack.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
Команды для деплоя:
# 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
Управление контейнером:
# Остановить контейнер
docker-compose down
# Перезапустить контейнер
docker-compose restart bivekidaybot
# Обновить приложение
git pull
docker-compose up -d --build
# Посмотреть логи
docker-compose logs -f bivekidaybot
# Войти в контейнер для отладки
docker-compose exec bivekidaybot sh
🔍 Проверка работоспособности
- Health Check:
http://your-server:3000/health
- Telegram Bot: Отправьте
/start
боту - Логи:
docker-compose logs bivekidaybot
📊 Мониторинг
Проверка статуса контейнера:
docker-compose ps
Просмотр ресурсов:
docker stats bivekidaybot-app
Проверка health check:
curl http://localhost:3000/health
🔧 Настройки для продакшена
Рекомендуемые изменения в stack.env:
# Для продакшена рекомендуется отключить synchronize в TypeORM
NODE_ENV=production
# Настройте правильный часовой пояс
TZ=Europe/Moscow
# Ограничьте количество подключений к БД
MAX_CONNECTIONS=10
🚨 Устранение неполадок
Проблемы с базой данных:
- Проверьте правильность
DATABASE_URL
- Убедитесь, что БД доступна извне
- Проверьте настройки SSL для облачной БД
Проблемы с Telegram ботом:
- Проверьте правильность
TELEGRAM_BOT_TOKEN
- Убедитесь, что токен активен
- Проверьте, что бот не используется в другом месте
Логи и отладка:
# Подробные логи
docker-compose logs -f --tail=100 bivekidaybot
# Войти в контейнер
docker-compose exec bivekidaybot sh
# Перезапуск с полной пересборкой
docker-compose down
docker-compose up -d --build --force-recreate
🔄 Обновление приложения
# 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)