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