171 lines
4.4 KiB
Markdown
171 lines
4.4 KiB
Markdown
# Команды для запуска проекта
|
||
|
||
## Локальный запуск
|
||
|
||
### 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/ # Изображения для тестов
|
||
``` |