4.4 KiB
4.4 KiB
Команды для запуска проекта
Локальный запуск
1. Установка зависимостей
# Создание виртуального окружения
python -m venv venv
# Активация (Windows)
venv\Scripts\activate
# Активация (Linux/Mac)
source venv/bin/activate
# Установка зависимостей
pip install -r requirements.txt
# или при использовании uv:
uv sync
2. Настройка переменных окружения
# Скопируйте шаблон
cp .env.template .env
# Отредактируйте .env файл, указав:
# - Токен телеграм бота
# - Параметры подключения к базе данных
3. Запуск приложения
# Только бот
python main.py --mode bot
# Только API
python main.py --mode api
# Бот + API одновременно
python main.py --mode both
Docker запуск
1. Простой запуск (только бот)
# Сборка и запуск
docker-compose up --build -d
# Просмотр логов
docker-compose logs -f bot
2. Запуск с API
# Запуск бота и API
docker-compose --profile api up --build -d
# Просмотр логов
docker-compose logs -f bot api
3. Разработка
# Запуск в режиме разработки с hot reload
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --build -d
# Комбинированный режим (бот + API в одном контейнере)
docker-compose -f docker-compose.yml -f docker-compose.dev.yml --profile combined up --build -d
4. Управление контейнерами
# Остановка
docker-compose down
# Остановка с удалением данных
docker-compose down -v
# Пересборка без кэша
docker-compose build --no-cache
# Просмотр статуса
docker-compose ps
Полезные команды
База данных
# Подключение к PostgreSQL в контейнере
docker-compose exec postgres psql -U botuser -d botdb
# Просмотр таблиц
docker-compose exec postgres psql -U botuser -d botdb -c "\dt"
# Бэкап базы данных
docker-compose exec postgres pg_dump -U botuser botdb > backup.sql
Логи и отладка
# Логи бота
docker-compose logs -f bot
# Логи API
docker-compose logs -f api
# Логи базы данных
docker-compose logs -f postgres
# Подключение к контейнеру для отладки
docker-compose exec bot bash
Тестирование API
# Проверка здоровья
curl http://localhost:8000/health
# Swagger документация
# Откройте в браузере: http://localhost:8000/docs
Переменные окружения
Основные переменные в .env файле:
# Telegram Bot
TELEGRAM_BOT_TOKEN=your_bot_token_here
# Database
DB_HOST=localhost
DB_PORT=5432
DB_NAME=botdb
DB_USER=botuser
DB_PASSWORD=your_secure_password
# Application
APP_ENV=development
LOG_LEVEL=INFO
DEBUG=True
# API (if needed)
API_HOST=0.0.0.0
API_PORT=8000
API_RELOAD=True
Структура проекта после рефакторинга
bot-telegram/
├── .env # Переменные окружения (не в git)
├── .env.template # Шаблон переменных
├── .gitignore # Исключения для git
├── main.py # Основная точка входа
├── bot.py # Современный Telegram бот
├── bot_config.py # Конфигурация бота
├── bot_old.py # Резервная копия старого бота
├── pyproject.toml # Зависимости Python
├── docker-compose.yml # Docker конфигурация
├── docker-compose.dev.yml # Docker для разработки
├── Dockerfile # Docker образ
├── START_COMMANDS.md # Этот файл
├── api/ # FastAPI приложение
├── database/ # Модели и репозитории
└── images/ # Изображения для тестов