# Миграция с Node.js на Python ## Зачем переходить на Python? 1. **Email работает из коробки** - нативная поддержка SMTP без проблем с AWS SDK 2. **Проще настройка** - меньше зависимостей и конфликтов версий 3. **Лучшая типизация** - Pydantic для валидации 4. **Совместимость** - использует ту же MongoDB, API полностью совместимо ## Шаги миграции ### 1. Остановите Node.js версию ```bash # Если запущено через PM2 pm2 stop moderation-backend # Если запущено через Docker docker stop nakama-moderation-backend # Если запущено вручную # Найдите процесс и остановите его ps aux | grep "moderation/backend" kill ``` ### 2. Установите Python зависимости ```bash cd moderation/backend-py python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` ### 3. Проверьте .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=ваш_токен MODERATION_OWNER_USERNAMES=glpshchn00 # MongoDB (та же база!) MONGODB_URI=mongodb://103.80.87.247:27017/nakama ``` ### 4. Запустите Python версию ```bash # Development python main.py # Или с auto-reload uvicorn main:app --reload --host 0.0.0.0 --port 3001 # Production uvicorn main:app --host 0.0.0.0 --port 3001 --workers 4 ``` ### 5. Проверьте работу ```bash # Health check curl http://localhost:3001/health # API curl http://localhost:3001/api/moderation-auth/config ``` ### 6. Обновите PM2 (опционально) ```bash pm2 delete moderation-backend 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 ``` ## Откат на Node.js Если нужно вернуться: ```bash # Остановите Python версию pm2 stop moderation-backend-py # Запустите Node.js версию cd moderation/backend npm start ``` ## Проверка совместимости Фронтенд модерации работает с обеими версиями без изменений: - API endpoints идентичны - Формат данных совместим - WebSocket протокол тот же ## Решение проблем ### Email не отправляется Проверьте: 1. Используете ли пароль приложения Yandex (не основной пароль) 2. Правильность email адреса в `YANDEX_SMTP_USER` 3. Логи при запуске - должна быть строка `[Email] Настройка SMTP` ### 401 Unauthorized - JWT токены те же, что и в Node.js версии - Cookies с теми же именами - Проверьте `JWT_ACCESS_SECRET` в `.env` ### MongoDB connection error - Используется та же `MONGODB_URI` из `.env` - Проверьте доступность MongoDB: `mongosh ` ## Производительность Python версия с uvicorn и 4 workers показывает сопоставимую или лучшую производительность по сравнению с Node.js. ## Поддержка При проблемах создайте issue или обратитесь к администратору.