# Команды для запуска проекта ## Локальный запуск ### 1. Установка зависимостей ```bash # Создание виртуального окружения python -m venv venv # Активация (Windows) venv\Scripts\activate # Активация (Linux/Mac) source venv/bin/activate # Установка зависимостей pip install -r requirements.txt # или при использовании uv: uv sync ``` ### 2. Настройка переменных окружения ```bash # Скопируйте шаблон cp .env.template .env # Отредактируйте .env файл, указав: # - Токен телеграм бота # - Параметры подключения к базе данных ``` ### 3. Запуск приложения ```bash # Только бот python main.py --mode bot # Только API python main.py --mode api # Бот + API одновременно python main.py --mode both ``` ## Docker запуск ### 1. Простой запуск (только бот) ```bash # Сборка и запуск docker-compose up --build -d # Просмотр логов docker-compose logs -f bot ``` ### 2. Запуск с API ```bash # Запуск бота и API docker-compose --profile api up --build -d # Просмотр логов docker-compose logs -f bot api ``` ### 3. Разработка ```bash # Запуск в режиме разработки с 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. Управление контейнерами ```bash # Остановка docker-compose down # Остановка с удалением данных docker-compose down -v # Пересборка без кэша docker-compose build --no-cache # Просмотр статуса docker-compose ps ``` ## Полезные команды ### База данных ```bash # Подключение к 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 ``` ### Логи и отладка ```bash # Логи бота docker-compose logs -f bot # Логи API docker-compose logs -f api # Логи базы данных docker-compose logs -f postgres # Подключение к контейнеру для отладки docker-compose exec bot bash ``` ### Тестирование API ```bash # Проверка здоровья curl http://localhost:8000/health # Swagger документация # Откройте в браузере: http://localhost:8000/docs ``` ## Переменные окружения Основные переменные в `.env` файле: ```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/ # Изображения для тестов ```