diff --git a/docs/ADMIN_PANEL.md b/docs/ADMIN_PANEL.md new file mode 100644 index 0000000..fcf958f --- /dev/null +++ b/docs/ADMIN_PANEL.md @@ -0,0 +1,163 @@ +# Pulse Admin Panel + +Дата: 2026-05-09 +Репозиторий: viktor138irk/SWChat +Связанный клиент: viktor138irk/SWChat-App + +## Цель + +Pulse Admin Panel — собственная серверная админка StackWorks поверх Matrix/Synapse. + +Задача: +- не зависеть полностью от стандартной Synapse Admin UI; +- скрыть Matrix-сложность; +- получить нормальную Telegram-like админку для Pulse. + +## Архитектура + +```text +Pulse Admin Panel + ↓ +Pulse Backend API + ↓ +Synapse Admin API + ↓ +PostgreSQL / Matrix +``` + +## Рекомендуемый стек + +### Backend + +- PHP 8.3 +- Laravel или собственный lightweight backend +- Redis позже +- PostgreSQL/MySQL для служебных данных Pulse + +### Frontend + +- Blade + Alpine.js +или +- Vue/Nuxt позже + +На MVP лучше: + +```text +PHP + Blade + Alpine.js +``` + +Потому что: +- быстрее; +- проще деплой; +- проще поддержка; +- меньше зависимостей. + +## Домен + +```text +admin-chat.stackworks.ru +``` + +## Авторизация + +Только через отдельный Pulse Admin login. + +Не использовать Matrix user login напрямую как web-session. + +Нужно: +- отдельная таблица admin users; +- роли; +- audit log; +- IP logging; +- rate limits. + +## Роли + +### Super Admin + +Полный доступ. + +### Moderator + +Может: +- блокировать пользователей; +- смотреть жалобы; +- модерировать комнаты. + +Не может: +- менять серверные настройки; +- удалять админов. + +### Support + +Может: +- смотреть профили; +- помогать с аккаунтами; +- сбрасывать пароли. + +## MVP функции + +### Пользователи + +- список пользователей; +- поиск по username/display name; +- просмотр профиля; +- блокировка; +- разблокировка; +- reset password; +- forced logout; +- просмотр устройств. + +### Чаты + +- список комнат; +- просмотр участников; +- просмотр статистики; +- room moderation; +- room lock. + +### Жалобы + +- user reports; +- media reports; +- spam detection позже. + +### Система + +- состояние Synapse; +- PostgreSQL status; +- Docker status; +- диск; +- RAM; +- push gateway status. + +## Будущие функции + +- телефонная регистрация; +- server-side key backup; +- media moderation AI; +- антиспам; +- analytics; +- графики активности; +- invite system; +- платные функции; +- verified accounts. + +## Важное правило + +Админка должна быть отдельным модулем. + +Нельзя: +- править production Synapse руками; +- использовать raw admin endpoints без backend validation; +- хранить admin secrets в клиенте. + +## Следующий шаг + +1. Создать backend skeleton. +2. Добавить `/api/admin/*`. +3. Подключить Synapse Admin API. +4. Сделать login screen. +5. Сделать dashboard. +6. Сделать users table. +7. Сделать roles.