2.7 KiB
2.7 KiB
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.
Директории
/opt/swmessenger/source
/opt/swmessenger/app
/opt/swmessenger/matrix
/opt/swmessenger/backups
Docker
Используем Docker Compose.
Преимущества:
- изоляция;
- простое обновление;
- rollback;
- переносимость.
MVP v0.x
Первая цель:
- поднять Synapse;
- подключить PostgreSQL;
- открыть web-client;
- проверить регистрацию;
- не сломать production.