Добавлена архитектура проекта
Этот коммит содержится в:
@@ -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.
|
||||
Ссылка в новой задаче
Block a user