nakama/moderation/backend-py/INSTALL.md

3.3 KiB
Raw Permalink Blame History

Установка и запуск Python Moderation Backend

Быстрая установка

cd moderation/backend-py
./start.sh

Скрипт автоматически:

  1. Создаст виртуальное окружение
  2. Установит зависимости
  3. Запустит сервер

Ручная установка

1. Python 3.11+

python3 --version

Если версия < 3.11, установите новую версию.

2. Виртуальное окружение

cd moderation/backend-py
python3 -m venv venv
source venv/bin/activate

3. Зависимости

pip install -r requirements.txt

4. Настройка email

В корневом .env (nakama/.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. Создайте админа

// В 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. Запуск

python main.py

Или:

uvicorn main:app --reload --host 0.0.0.0 --port 3001

7. Проверка

# Health check
curl http://localhost:3001/health

# Должен вернуть:
# {"status":"ok","service":"moderation","version":"2.0.0-python"}

Тестирование email

# В Python консоли
python3
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 версию:
pm2 stop moderation-backend
  1. Запустите Python версию:
cd moderation/backend-py
./start.sh
  1. Фронтенд работает без изменений!

Production

# С 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 для подробностей.