Обновлён README под SWChat
Этот коммит содержится в:
+133
-38
@@ -1,57 +1,152 @@
|
||||
# WSMessenger
|
||||
# SWChat
|
||||
|
||||
WSMessenger — собственный Android/Web мессенджер на базе Matrix.
|
||||
SWChat — self-hosted Android/Web мессенджер на базе Matrix для экосистемы StackWorks.
|
||||
|
||||
Проект создаётся как независимая экосистема StackWorks:
|
||||
- Android-приложение;
|
||||
- web-клиент;
|
||||
- Matrix homeserver;
|
||||
- встраиваемый чат-виджет;
|
||||
- админ-панель;
|
||||
- операторские панели;
|
||||
- self-hosted установка рядом с FastPanel.
|
||||
Проект строится как собственная платформа связи:
|
||||
- Matrix Core на отдельном сервере;
|
||||
- PostgreSQL;
|
||||
- официальный Matrix/Element-клиент для первого тестирования;
|
||||
- будущий web-клиент;
|
||||
- будущий Android-клиент;
|
||||
- будущая админ-панель;
|
||||
- безопасная архитектура без вмешательства в существующий production.
|
||||
|
||||
## Главная цель
|
||||
## Текущая стратегия
|
||||
|
||||
Создать современный self-hosted мессенджер с:
|
||||
- собственным брендом;
|
||||
- независимой инфраструктурой;
|
||||
- Android-клиентом;
|
||||
- web-клиентом;
|
||||
- поддержкой виджета для сайтов;
|
||||
- возможностью масштабирования;
|
||||
- безопасной установкой рядом с существующими проектами.
|
||||
Сначала поднимаем и проверяем серверное ядро через официальные Matrix-клиенты.
|
||||
|
||||
## Базовая архитектура
|
||||
Порядок:
|
||||
|
||||
1. Поднять SWChat Core на отдельном сервере.
|
||||
2. Проверить Matrix/Synapse локально.
|
||||
3. Настроить публичный домен `matrix.stackworks.ru`.
|
||||
4. Проверить работу через официальные клиенты Matrix/Element.
|
||||
5. Только после стабильной проверки начинать разработку собственного Android/Web-клиента.
|
||||
|
||||
Это нужно, чтобы не путать проблемы сервера с проблемами будущего собственного UI.
|
||||
|
||||
## Архитектура
|
||||
|
||||
SWChat работает по split-server архитектуре.
|
||||
|
||||
### Новый сервер: SWChat Core
|
||||
|
||||
На новом сервере размещаются:
|
||||
- Matrix Synapse;
|
||||
- PostgreSQL;
|
||||
- coturn;
|
||||
- FastPanel reverse proxy;
|
||||
- Docker Compose;
|
||||
- Android Matrix SDK;
|
||||
- собственный backend/панель.
|
||||
- media storage;
|
||||
- будущий TURN/STUN;
|
||||
- будущий backend API;
|
||||
- backups;
|
||||
- diagnostics.
|
||||
|
||||
## Безопасность
|
||||
Рекомендуемые домены:
|
||||
|
||||
WSMessenger никогда не должен ломать существующие проекты:
|
||||
```text
|
||||
matrix.stackworks.ru -> новый SWChat Core сервер
|
||||
turn.stackworks.ru -> новый SWChat Core сервер, позже
|
||||
api-chat.stackworks.ru -> новый SWChat Core сервер, позже
|
||||
```
|
||||
|
||||
### Старый сервер с FastPanel
|
||||
|
||||
Старый сервер с FastPanel используется только для будущего frontend/web-клиента.
|
||||
|
||||
На нём остаются отдельно:
|
||||
- ArtistFlow;
|
||||
- сайты FastPanel;
|
||||
- nginx-конфиги;
|
||||
- существующие базы данных.
|
||||
- widget.stackworks.ru;
|
||||
- текущие сайты StackWorks/FastPanel.
|
||||
|
||||
Все сервисы запускаются отдельно и наружу публикуются только через reverse proxy.
|
||||
SWChat installer не меняет FastPanel, не меняет vhost, не меняет SSL и не трогает существующие сайты.
|
||||
|
||||
Будущий frontend-домен:
|
||||
|
||||
```text
|
||||
chat.stackworks.ru
|
||||
```
|
||||
|
||||
## Что нельзя трогать
|
||||
|
||||
Защищённые production-активы:
|
||||
- `artistflow.ru`;
|
||||
- `widget.stackworks.ru`;
|
||||
- текущие сайты FastPanel;
|
||||
- настройки FastPanel без отдельной явной команды.
|
||||
|
||||
`widget.stackworks.ru` на текущем этапе никак не связан с Matrix/SWChat. Новый виджет SWChat не планируется.
|
||||
|
||||
## Установка SWChat Core
|
||||
|
||||
На новом сервере Ubuntu:
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /opt/swchat
|
||||
sudo git clone https://github.com/viktor138irk/SWChat.git /opt/swchat/source
|
||||
cd /opt/swchat/source
|
||||
sudo SERVER_NAME=matrix.stackworks.ru bash scripts/install.sh
|
||||
```
|
||||
|
||||
Installer:
|
||||
- создаёт структуру `/opt/swchat`;
|
||||
- устанавливает Docker, если он отсутствует;
|
||||
- создаёт `.env`;
|
||||
- генерирует Synapse config;
|
||||
- настраивает PostgreSQL для Synapse;
|
||||
- запускает контейнеры;
|
||||
- не трогает FastPanel.
|
||||
|
||||
## Проверка после установки
|
||||
|
||||
```bash
|
||||
sudo bash /opt/swchat/source/scripts/healthcheck.sh
|
||||
curl http://127.0.0.1:8008/_matrix/client/versions
|
||||
```
|
||||
|
||||
Ожидаемый результат `curl` — JSON с версиями Matrix API.
|
||||
|
||||
## Тестирование официальными клиентами
|
||||
|
||||
До разработки собственного клиента проверяем сервер через:
|
||||
- Element Web;
|
||||
- Element Desktop;
|
||||
- Element Android;
|
||||
- любые совместимые Matrix-клиенты.
|
||||
|
||||
Проверяем:
|
||||
- регистрацию/логин;
|
||||
- личные сообщения;
|
||||
- комнаты;
|
||||
- отправку файлов;
|
||||
- стабильность Synapse;
|
||||
- работу публичного домена.
|
||||
|
||||
## Структура проекта
|
||||
|
||||
- docs/ — документация;
|
||||
- scripts/ — installer/healthcheck;
|
||||
- public/widget/ — web widget;
|
||||
- docker-compose.yml — инфраструктура Matrix;
|
||||
- .sw — главный журнал проекта.
|
||||
```text
|
||||
.sw главный журнал проекта
|
||||
docker-compose.yml Matrix/PostgreSQL stack
|
||||
scripts/install.sh автоустановщик Core-сервера
|
||||
scripts/healthcheck.sh диагностика
|
||||
docs/ документация
|
||||
VERSION версия проекта
|
||||
```
|
||||
|
||||
## Правило `.sw`
|
||||
|
||||
Файл `.sw` — главный журнал проекта.
|
||||
|
||||
В него обязательно записываются:
|
||||
- архитектурные решения;
|
||||
- изменения версий;
|
||||
- текущий статус;
|
||||
- следующий шаг;
|
||||
- ошибки и исправления;
|
||||
- запреты и защищённые production-активы.
|
||||
|
||||
Новый диалог по проекту начинается с чтения `.sw`.
|
||||
|
||||
## Текущий статус
|
||||
|
||||
Версия: 0.1.0
|
||||
Версия: `0.1.0`
|
||||
|
||||
Подготовлен базовый фундамент проекта.
|
||||
Сейчас идёт этап запуска SWChat Core на отдельном сервере и тестирования через официальные Matrix-клиенты.
|
||||
|
||||
Ссылка в новой задаче
Block a user