nakama/moderation/backend-py/INSTALL.md

166 lines
3.3 KiB
Markdown
Raw Permalink Normal View History

2025-12-14 23:45:41 +00:00
# Установка и запуск Python Moderation Backend
## Быстрая установка
```bash
cd moderation/backend-py
./start.sh
```
Скрипт автоматически:
1. Создаст виртуальное окружение
2. Установит зависимости
3. Запустит сервер
## Ручная установка
### 1. Python 3.11+
```bash
python3 --version
```
Если версия < 3.11, установите новую версию.
### 2. Виртуальное окружение
```bash
cd moderation/backend-py
python3 -m venv venv
source venv/bin/activate
```
### 3. Зависимости
```bash
pip install -r requirements.txt
```
### 4. Настройка email
В корневом `.env` (`nakama/.env`) добавьте:
```env
EMAIL_PROVIDER=yandex
YANDEX_SMTP_HOST=smtp.yandex.ru
YANDEX_SMTP_PORT=465
YANDEX_SMTP_SECURE=true
YANDEX_SMTP_USER=ваш_email@yandex.ru
YANDEX_SMTP_PASSWORD=ваш_пароль_приложения
EMAIL_FROM=noreply@nakama.guru
```
**Получение пароля приложения Yandex:**
1. https://id.yandex.ru/security
2. "Пароли и вход" → "Пароли приложений"
3. Создать для "Почта"
4. Скопировать в `YANDEX_SMTP_PASSWORD`
### 5. Создайте админа
```javascript
// В mongosh
use nakama;
// Найти вашего пользователя
const user = db.users.findOne({ username: "ваш_username" });
// Обновить email и роль
db.users.updateOne(
{ _id: user._id },
{
$set: {
email: "ваш_email@yandex.ru",
emailVerified: true,
role: "admin"
}
}
);
// Проверить
db.users.findOne({ email: "ваш_email@yandex.ru" });
```
### 6. Запуск
```bash
python main.py
```
Или:
```bash
uvicorn main:app --reload --host 0.0.0.0 --port 3001
```
### 7. Проверка
```bash
# Health check
curl http://localhost:3001/health
# Должен вернуть:
# {"status":"ok","service":"moderation","version":"2.0.0-python"}
```
## Тестирование email
```bash
# В Python консоли
python3
```
```python
import asyncio
from utils.email_service import send_verification_code
async def test():
await send_verification_code("ваш_email@yandex.ru", "123456")
print("✅ Email отправлен!")
asyncio.run(test())
```
Если ошибка - проверьте настройки SMTP в `.env`.
## Переключение с Node.js
1. Остановите Node.js версию:
```bash
pm2 stop moderation-backend
```
2. Запустите Python версию:
```bash
cd moderation/backend-py
./start.sh
```
3. Фронтенд работает без изменений!
## Production
```bash
# С PM2
pm2 start "uvicorn main:app --host 0.0.0.0 --port 3001 --workers 2" \
--name moderation-backend-py \
--cwd /path/to/nakama/moderation/backend-py \
--interpreter python3
# Или с Docker
docker-compose -f docker-compose.moderation-py.yml up -d
```
## Логи
Все логи в stdout:
- `[Email]` - email операции
- `[ModerationAuth]` - аутентификация
- `[ModApp]` - модерация
- `[WebSocket]` - WebSocket
## Помощь
См. `README.md` и `MIGRATION.md` для подробностей.