# 🐍 Python Backend для модерации - Готов к использованию! Бэкенд модерации полностью портирован на Python3 с FastAPI. ## ✅ Что сделано 1. **FastAPI сервер** - современный async Python фреймворк 2. **Email через SMTP** - нативная поддержка Yandex SMTP (без проблем AWS SDK) 3. **MongoDB** - async подключение через Motor 4. **JWT аутентификация** - совместимо с Node.js версией 5. **WebSocket чат** - Socket.IO для модераторов 6. **MinIO интеграция** - для хранения файлов 7. **API совместимость** - фронтенд работает без изменений 8. **Docker ready** - готовый Dockerfile ## 🚀 Быстрый старт ### Вариант 1: Автоматический (рекомендуется) ```bash cd moderation/backend-py ./start.sh ``` ### Вариант 2: Ручной ```bash cd moderation/backend-py # Создать venv python3 -m venv venv source venv/bin/activate # Установить зависимости pip install -r requirements.txt # Запустить python main.py ``` ## ⚙️ Настройка ### 1. Email (ОБЯЗАТЕЛЬНО!) В `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 OWNER_EMAIL=admin@example.com ``` **Получить пароль приложения Yandex:** - https://id.yandex.ru/security - "Пароли приложений" → Создать для "Почта" ### 2. Создать админа ```bash mongosh nakama ``` ```javascript // Обновить пользователя db.users.updateOne( { username: "ваш_username" }, { $set: { email: "ваш_email@yandex.ru", emailVerified: true, role: "admin" } } ); ``` ### 3. Запустить ```bash cd moderation/backend-py python main.py ``` Должно появиться: ``` ============================================================ 🚀 Запуск сервера модерации (Python)... ✅ MongoDB подключена (база: nakama) 📚 Коллекций в базе: 10 ============================================================ ============================================================ ✅ Сервер модерации запущен (Python) 🌐 API: http://0.0.0.0:3001/api 🔌 WebSocket: http://0.0.0.0:3001/socket.io 📦 MongoDB: 103.80.87.247:27017/nakama ============================================================ ``` ## 📝 Проверка 1. **Health check:** ```bash curl http://localhost:3001/health # {"status":"ok","service":"moderation","version":"2.0.0-python"} ``` 2. **Config:** ```bash curl http://localhost:3001/api/moderation-auth/config ``` 3. **Отправка кода:** Откройте фронтенд модерации, введите email - код должен прийти! ## 🔧 Решение проблем ### Email не отправляется Проверьте логи: ``` [Email] Настройка SMTP: {provider: 'yandex', host: 'smtp.yandex.ru', port: 465, ...} ``` Если `user: 'не указан'` - проверьте `YANDEX_SMTP_USER` в `.env`. ### 403 при send-code ```javascript // Проверьте роль пользователя db.users.findOne({ email: "ваш_email@yandex.ru" }) // Должно быть role: "admin" или "moderator" ``` ### MongoDB не подключается ```bash # Проверьте доступность mongosh "mongodb://103.80.87.247:27017/nakama" ``` ## 🐳 Docker ```bash cd moderation/backend-py docker build -t nakama-moderation-py . docker run -d -p 3001:3001 --env-file ../../.env nakama-moderation-py ``` ## 📦 Production ### PM2 ```bash pm2 start "uvicorn main:app --host 0.0.0.0 --port 3001 --workers 2" \ --name moderation-backend-py \ --cwd $(pwd) \ --interpreter python3 pm2 save ``` ### Systemd Создайте `/etc/systemd/system/nakama-moderation-py.service`: ```ini [Unit] Description=Nakama Moderation Backend (Python) After=network.target [Service] Type=simple User=nakama WorkingDirectory=/path/to/nakama/moderation/backend-py Environment="PATH=/path/to/nakama/moderation/backend-py/venv/bin" ExecStart=/path/to/nakama/moderation/backend-py/venv/bin/uvicorn main:app --host 0.0.0.0 --port 3001 --workers 2 Restart=always [Install] WantedBy=multi-user.target ``` ```bash sudo systemctl daemon-reload sudo systemctl enable nakama-moderation-py sudo systemctl start nakama-moderation-py ``` ## 📚 Документация - `README.md` - Полное описание - `QUICKSTART.md` - Быстрый старт - `INSTALL.md` - Подробная установка - `MIGRATION.md` - Миграция с Node.js ## ✨ Преимущества - ✅ Email работает из коробки - ✅ Меньше зависимостей - ✅ Лучшая типизация - ✅ Async/await - ✅ Совместимость с Node.js версией - ✅ Та же MongoDB - ✅ API полностью совместимо Фронтенд работает без изменений!