Добавлена архитектура проекта

Этот коммит содержится в:
Виктор
2026-05-08 22:56:52 +09:00
родитель 4f06348658
Коммит 39cc649403
+126
Просмотреть файл
@@ -0,0 +1,126 @@
# WSMessenger Architecture
## Цель
WSMessenger — self-hosted Android/Web мессенджер на базе Matrix.
Проект должен:
- безопасно работать рядом с FastPanel;
- не ломать ArtistFlow;
- не вмешиваться в widget.stackworks.ru;
- масштабироваться;
- поддерживать Android/Web клиентов.
## Основные компоненты
### 1. Matrix Synapse
Назначение:
- транспорт сообщений;
- комнаты;
- события;
- federation (в будущем);
- media storage.
Работает:
- локально;
- только через reverse proxy.
Порт:
- 127.0.0.1:8008
### 2. PostgreSQL
Отдельная база данных для Matrix/SWMessenger.
Изоляция обязательна.
Запрещено использовать базы ArtistFlow.
### 3. Web Client
План:
- отдельный web-клиент;
- возможно Element Web на старте;
- позже собственный UI.
Домен:
- chat.stackworks.ru
- или messenger.stackworks.ru
### 4. Android Client
Основа:
- Matrix SDK;
- форк Element или собственный клиент позже.
План:
- собственный branding;
- push;
- комнаты;
- медиа;
- голосовые функции позже.
### 5. Admin Panel
Назначение:
- управление пользователями;
- мониторинг;
- healthcheck;
- настройки.
Домен:
- admin-messenger.stackworks.ru
### 6. TURN/STUN
coturn.
Понадобится позже для звонков.
## Изоляция от production
WSMessenger должен быть полностью изолирован от:
- ArtistFlow;
- widget.stackworks.ru;
- production-сайтов FastPanel.
## FastPanel
FastPanel используется только как:
- reverse proxy;
- SSL management;
- DNS/vhost gateway.
WSMessenger не должен:
- менять FastPanel автоматически;
- менять nginx configs самостоятельно;
- перезапускать production nginx.
## Директории
```text
/opt/swmessenger/source
/opt/swmessenger/app
/opt/swmessenger/matrix
/opt/swmessenger/backups
```
## Docker
Используем Docker Compose.
Преимущества:
- изоляция;
- простое обновление;
- rollback;
- переносимость.
## MVP v0.x
Первая цель:
- поднять Synapse;
- подключить PostgreSQL;
- открыть web-client;
- проверить регистрацию;
- не сломать production.