119 lines
2.8 KiB
Markdown
119 lines
2.8 KiB
Markdown
|
|
# Быстрый старт - 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` для полных инструкций по развертыванию.
|
|||
|
|
|