nakama/moderation/README.md

133 lines
5.2 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.

# Nakama Moderation Panel
Панель модерации для Nakama - полнофункциональный веб-интерфейс для модераторов.
## Возможности
- 📱 **Адаптивный дизайн** - работает на мобильных устройствах и десктопах
- 🌐 **Веб-версия** - доступна как в Telegram WebApp, так и в обычном браузере
- 👥 **Управление пользователями** - просмотр, фильтрация, блокировка пользователей
- 📝 **Управление постами** - редактирование, удаление, пометка артом
- 🚨 **Обработка репортов** - модерация жалоб пользователей
- 💬 **Чат модераторов** - real-time чат для общения между модераторами
- 📢 **Публикация в канал** - публикация контента в Telegram канал
- 👑 **Управление админами** - назначение и снятие администраторов
## Требования
- Node.js 18+
- MongoDB (используется та же БД что и основной проект)
- Доступ к `.env` файлу в корне проекта
## Установка
1. Установите зависимости в корне проекта:
```bash
npm install
```
2. Установите зависимости фронтенда модерации:
```bash
cd moderation/frontend
npm install
```
3. Убедитесь, что в корневом `.env` файле настроены:
- `MONGODB_URI` - URI для подключения к MongoDB
- `MODERATION_BOT_TOKEN` - токен бота для модерации
- `MODERATION_OWNER_USERNAMES` - список владельцев (через запятую)
- `MODERATION_PORT` - порт для бэкенда модерации (по умолчанию 3001)
## Запуск
### Development режим
Запустить бэкенд и фронтенд модерации одновременно:
```bash
npm run mod-dev
```
Или отдельно:
```bash
# Бэкенд (порт 3001)
npm run mod-server
# Фронтенд (порт 5174)
npm run mod-client
```
### Production режим
1. Соберите фронтенд:
```bash
npm run mod-build
```
2. Запустите бэкенд:
```bash
npm run mod-start
```
## Доступ
### В Telegram
Откройте бота модерации и перейдите в меню веб-приложения.
### В браузере
1. Откройте `http://localhost:5174` (development) или ваш production URL
2. Войдите используя initData из Telegram WebApp или токен доступа
## Структура проекта
```
moderation/
├── backend/
│ └── server.js # Бэкенд сервер модерации
├── frontend/
│ ├── src/
│ │ ├── App.jsx # Главный компонент
│ │ ├── utils/
│ │ │ └── api.js # API клиент
│ │ └── styles.css # Стили с адаптивным дизайном
│ └── vite.config.js # Конфигурация Vite
└── README.md
```
## Технологии
- **Backend**: Express.js, использует общие middleware и модели из основного бэкенда
- **Frontend**: React, Vite
- **WebSocket**: Socket.io для real-time чата модераторов
- **Стили**: CSS с адаптивными media queries
## Переменные окружения
Модераторский бэкенд использует переменные из корневого `.env`:
- `MONGODB_URI` - подключение к MongoDB
- `MODERATION_BOT_TOKEN` - токен бота
- `MODERATION_OWNER_USERNAMES` - владельцы системы
- `MODERATION_PORT` - порт бэкенда (по умолчанию 3001)
- `MODERATION_CORS_ORIGIN` - CORS origin (опционально)
- Все остальные переменные из основного `.env`
## Адаптивный дизайн
Приложение автоматически адаптируется под разные размеры экранов:
- **Desktop (>1024px)**: Многоколоночный layout, расширенные элементы управления
- **Tablet (768px-1023px)**: Одноколоночный layout с оптимизированными элементами
- **Mobile (<768px)**: Компактный layout, вертикальное меню, сенсорные элементы
## Безопасность
- Все запросы требуют авторизации через Telegram initData
- Используются те же middleware безопасности что и в основном бэкенде
- Rate limiting для защиты от DDoS
- Валидация и санитизация всех входных данных
## Поддержка
При возникновении проблем обращайтесь к владельцу системы.