Files
bivekidaybot/DEPLOY.md
Bivekich 0ce19f8182 🚀 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
2025-06-26 21:40:27 +03:00

4.5 KiB
Raw Blame History

🚀 Инструкция по деплою 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

🔍 Проверка работоспособности

  1. Health Check: http://your-server:3000/health
  2. Telegram Bot: Отправьте /start боту
  3. Логи: 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

🚨 Устранение неполадок

Проблемы с базой данных:

  1. Проверьте правильность DATABASE_URL
  2. Убедитесь, что БД доступна извне
  3. Проверьте настройки SSL для облачной БД

Проблемы с Telegram ботом:

  1. Проверьте правильность TELEGRAM_BOT_TOKEN
  2. Убедитесь, что токен активен
  3. Проверьте, что бот не используется в другом месте

Логи и отладка:

# Подробные логи
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)