164 строки
3.3 KiB
Markdown
164 строки
3.3 KiB
Markdown
# 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.
|