nakama/moderation/backend-py/QUICKSTART.md

119 lines
2.8 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
## 1. Установка
```bash
cd moderation/backend-py
# Создать виртуальное окружение
python3 -m venv venv
# Активировать
source venv/bin/activate # Linux/Mac
# или
venv\Scripts\activate # Windows
# Установить зависимости
pip install -r requirements.txt
```
## 2. Настройка .env
Отредактируйте корневой `.env` файл (`nakama/.env`):
```env
# Email (ОБЯЗАТЕЛЬНО!)
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
OWNER_EMAIL=admin@example.com
# Модерация
MODERATION_PORT=3001
MODERATION_BOT_TOKEN=ваш_токен
# MongoDB
MONGODB_URI=mongodb://103.80.87.247:27017/nakama
```
**Важно:** Для Yandex используйте пароль приложения!
1. Перейдите: https://id.yandex.ru/security
2. Создайте пароль приложения для "Почта"
3. Используйте его в `YANDEX_SMTP_PASSWORD`
## 3. Создайте админа в MongoDB
```javascript
// В mongosh
use nakama;
db.users.updateOne(
{ username: аш_username" },
{
$set: {
email: аш_email@yandex.ru",
emailVerified: true,
role: "admin"
}
}
);
```
## 4. Запуск
```bash
# Простой запуск
python main.py
# Или с auto-reload
uvicorn main:app --reload --host 0.0.0.0 --port 3001
# Или через скрипт
./start.sh
```
## 5. Проверка
```bash
# Health check
curl http://localhost:3001/health
# Config
curl http://localhost:3001/api/moderation-auth/config
```
## 6. Отправка кода
Откройте фронтенд модерации и введите email. Код должен прийти на почту.
## Troubleshooting
### Email не отправляется
Проверьте логи при запуске:
```
[Email] Настройка SMTP: {provider: 'yandex', host: 'smtp.yandex.ru', ...}
```
Если видите `user: 'не указан'` или `hasPassword: False` - проверьте `.env`.
### 403 Forbidden при send-code
Убедитесь, что в базе есть пользователь с:
- email = тот, что вводите
- role = 'admin' или 'moderator'
### Telegram виджет не работает
После успешной авторизации должно быть автоматическое перенаправление.
Проверьте логи: `[ModerationAuth] Успешная авторизация через виджет`
## Production
См. `MIGRATION.md` для полных инструкций по развертыванию.