5.4 KiB
5.4 KiB
🐍 Python Backend для модерации - Готов к использованию!
Бэкенд модерации полностью портирован на Python3 с FastAPI.
✅ Что сделано
- FastAPI сервер - современный async Python фреймворк
- Email через SMTP - нативная поддержка Yandex SMTP (без проблем AWS SDK)
- MongoDB - async подключение через Motor
- JWT аутентификация - совместимо с Node.js версией
- WebSocket чат - Socket.IO для модераторов
- MinIO интеграция - для хранения файлов
- API совместимость - фронтенд работает без изменений
- Docker ready - готовый Dockerfile
🚀 Быстрый старт
Вариант 1: Автоматический (рекомендуется)
cd moderation/backend-py
./start.sh
Вариант 2: Ручной
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 добавьте:
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. Создать админа
mongosh nakama
// Обновить пользователя
db.users.updateOne(
{ username: "ваш_username" },
{
$set: {
email: "ваш_email@yandex.ru",
emailVerified: true,
role: "admin"
}
}
);
3. Запустить
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
============================================================
📝 Проверка
- Health check:
curl http://localhost:3001/health
# {"status":"ok","service":"moderation","version":"2.0.0-python"}
- Config:
curl http://localhost:3001/api/moderation-auth/config
- Отправка кода: Откройте фронтенд модерации, введите email - код должен прийти!
🔧 Решение проблем
Email не отправляется
Проверьте логи:
[Email] Настройка SMTP: {provider: 'yandex', host: 'smtp.yandex.ru', port: 465, ...}
Если user: 'не указан' - проверьте YANDEX_SMTP_USER в .env.
403 при send-code
// Проверьте роль пользователя
db.users.findOne({ email: "ваш_email@yandex.ru" })
// Должно быть role: "admin" или "moderator"
MongoDB не подключается
# Проверьте доступность
mongosh "mongodb://103.80.87.247:27017/nakama"
🐳 Docker
cd moderation/backend-py
docker build -t nakama-moderation-py .
docker run -d -p 3001:3001 --env-file ../../.env nakama-moderation-py
📦 Production
PM2
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:
[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
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 полностью совместимо
Фронтенд работает без изменений!