From c66280f037c06de2fa5ec67fbe7dd6aed372253a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80?= <78488229+viktor138irk@users.noreply.github.com> Date: Fri, 8 May 2026 23:50:23 +0900 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D1=91?= =?UTF-8?q?=D0=BD=20README=20=D0=BF=D0=BE=D0=B4=20SWChat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 171 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 133 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 8f4fdb4..e53d59d 100644 --- a/README.md +++ b/README.md @@ -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-клиенты.