nakama/moderation/backend-py/INSTALL.md

166 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Установка и запуск 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` для подробностей.