add algam

This commit is contained in:
2025-09-22 11:54:42 +05:00
parent 3c418a97b4
commit 5b9c55a4dc
34 changed files with 4700 additions and 426 deletions

171
START_COMMANDS.md Normal file
View File

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