Зафиксировано что виджет не связывается с Matrix
Этот коммит содержится в:
+40
-67
@@ -8,11 +8,27 @@
|
|||||||
|
|
||||||
Не ломать существующие проекты на сервере.
|
Не ломать существующие проекты на сервере.
|
||||||
|
|
||||||
Защищённые прод-активы:
|
Защищённые production-активы:
|
||||||
- ArtistFlow / artistflow.ru;
|
- ArtistFlow / artistflow.ru;
|
||||||
- текущий чат-виджет / https://widget.stackworks.ru/;
|
- основной виджет StackWorks / https://widget.stackworks.ru/;
|
||||||
- текущие сайты и домены FastPanel.
|
- текущие сайты и домены FastPanel.
|
||||||
|
|
||||||
|
## Важно про widget.stackworks.ru
|
||||||
|
|
||||||
|
widget.stackworks.ru — отдельный действующий production-проект StackWorks.
|
||||||
|
|
||||||
|
На текущем этапе SWMessenger НЕ связывается с widget.stackworks.ru и НЕ создаёт новый виджет.
|
||||||
|
|
||||||
|
Запрещено без отдельной явной команды:
|
||||||
|
- менять vhost/config домена widget.stackworks.ru;
|
||||||
|
- менять webroot виджета;
|
||||||
|
- затирать файлы виджета;
|
||||||
|
- менять SSL и настройки домена;
|
||||||
|
- интегрировать виджет с Matrix;
|
||||||
|
- создавать новый параллельный виджет для SWMessenger.
|
||||||
|
|
||||||
|
## Важно про ArtistFlow
|
||||||
|
|
||||||
ArtistFlow должен оставаться нетронутым:
|
ArtistFlow должен оставаться нетронутым:
|
||||||
- не менять vhost/config домена artistflow.ru;
|
- не менять vhost/config домена artistflow.ru;
|
||||||
- не перезаписывать общий nginx.conf FastPanel;
|
- не перезаписывать общий nginx.conf FastPanel;
|
||||||
@@ -21,78 +37,37 @@ ArtistFlow должен оставаться нетронутым:
|
|||||||
- не занимать порты FastPanel и текущих сайтов;
|
- не занимать порты FastPanel и текущих сайтов;
|
||||||
- перед изменениями nginx/FastPanel делать backup конфигов.
|
- перед изменениями nginx/FastPanel делать backup конфигов.
|
||||||
|
|
||||||
Текущий widget.stackworks.ru тоже должен оставаться нетронутым:
|
## Принятая архитектура SWMessenger
|
||||||
- не менять vhost/config домена widget.stackworks.ru без отдельной команды;
|
|
||||||
- не менять webroot существующего виджета без отдельной команды;
|
|
||||||
- не затирать файлы текущего виджета;
|
|
||||||
- не менять SSL-сертификат и proxy-настройки домена widget.stackworks.ru без отдельной команды;
|
|
||||||
- новый SWMessenger widget разрабатывать в отдельной директории/поддомене, пока не будет явной команды на замену текущего виджета.
|
|
||||||
|
|
||||||
## Принятая архитектура
|
SWMessenger разворачивается отдельно от FastPanel-сайтов, ArtistFlow и widget.stackworks.ru.
|
||||||
|
|
||||||
SWMessenger разворачивается отдельно от FastPanel-сайтов, ArtistFlow и текущего widget.stackworks.ru.
|
|
||||||
|
|
||||||
Базовая схема:
|
Базовая схема:
|
||||||
- FastPanel/Nginx — только reverse proxy и SSL-витрина;
|
- FastPanel/Nginx — reverse proxy и SSL-витрина;
|
||||||
- Matrix Synapse — отдельный сервис на 127.0.0.1:8008;
|
- Matrix Synapse — отдельный сервис на 127.0.0.1:8008;
|
||||||
- PostgreSQL — отдельная база для Matrix/SWMessenger;
|
- PostgreSQL — отдельная база для Matrix/SWMessenger;
|
||||||
- backend/админка SWMessenger — отдельный локальный сервис;
|
- backend/админка SWMessenger — отдельный локальный сервис;
|
||||||
- web/client — можно выкладывать в вручную указанный webroot;
|
- web-client — отдельный web-клиент мессенджера;
|
||||||
- новый widget SWMessenger — только в отдельный тестовый webroot/поддомен до явной команды на замену widget.stackworks.ru;
|
|
||||||
- Android-приложение — отдельный клиент Matrix, позже брендированный под SWMessenger/StackWorks.
|
- Android-приложение — отдельный клиент Matrix, позже брендированный под SWMessenger/StackWorks.
|
||||||
|
|
||||||
## Предварительные домены
|
## Домены проекта
|
||||||
|
|
||||||
Домены можно менять в установщике, но рекомендуемая безопасная схема такая:
|
Рекомендуемая безопасная схема:
|
||||||
|
- matrix.stackworks.ru — Matrix API / Synapse;
|
||||||
- messenger.stackworks.ru или chat.stackworks.ru — web-клиент/панель;
|
- chat.stackworks.ru или messenger.stackworks.ru — web-клиент;
|
||||||
- matrix.stackworks.ru — Matrix API reverse proxy на Synapse;
|
|
||||||
- sw-widget.stackworks.ru или test-widget.stackworks.ru — тестовый виджет SWMessenger;
|
|
||||||
- widget.stackworks.ru — существующий прод-виджет, не трогать без отдельной команды;
|
|
||||||
- admin-messenger.stackworks.ru — админ-панель;
|
- admin-messenger.stackworks.ru — админ-панель;
|
||||||
- turn.stackworks.ru — TURN/STUN для звонков, если потребуется.
|
- turn.stackworks.ru — TURN/STUN для звонков, если потребуется;
|
||||||
|
- widget.stackworks.ru — отдельный production-виджет StackWorks, не часть Matrix/SWMessenger на текущем этапе.
|
||||||
|
|
||||||
## Предварительные директории
|
## Предварительные директории
|
||||||
|
|
||||||
Рекомендуемая структура на сервере:
|
|
||||||
|
|
||||||
- /opt/swmessenger/source — исходники GitHub;
|
- /opt/swmessenger/source — исходники GitHub;
|
||||||
- /opt/swmessenger/app — backend/админка;
|
- /opt/swmessenger/app — backend/админка;
|
||||||
- /opt/swmessenger/matrix — Matrix/Synapse;
|
- /opt/swmessenger/matrix — Matrix/Synapse;
|
||||||
- /opt/swmessenger/widget — новый виджет SWMessenger;
|
|
||||||
- /opt/swmessenger/element — web-клиент, если используем Element/Web;
|
- /opt/swmessenger/element — web-клиент, если используем Element/Web;
|
||||||
- /opt/swmessenger/backups — резервные копии;
|
- /opt/swmessenger/backups — резервные копии;
|
||||||
- /var/www/swmessenger/public — webroot для статики/фронта/тестового виджета.
|
- /var/www/swmessenger/public — webroot для фронта, если нужен.
|
||||||
|
|
||||||
Запрещено автоматически использовать webroot текущего widget.stackworks.ru без отдельной команды.
|
Запрещено автоматически использовать webroot widget.stackworks.ru.
|
||||||
|
|
||||||
## Принцип установки рядом с FastPanel
|
|
||||||
|
|
||||||
Можно вручную указать webroot, как в проекте с виджетом, но нельзя случайно указать текущий webroot widget.stackworks.ru, если нет явной команды на замену.
|
|
||||||
|
|
||||||
Файлы фронта/тестового виджета можно тянуть в отдельный webroot:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd /opt/swmessenger/source
|
|
||||||
rsync -a --delete public/ /var/www/swmessenger/public/
|
|
||||||
```
|
|
||||||
|
|
||||||
Сервисы не кладём в webroot:
|
|
||||||
- Synapse работает сервисом и слушает 127.0.0.1:8008;
|
|
||||||
- backend работает сервисом и слушает локальный порт;
|
|
||||||
- PostgreSQL работает локально;
|
|
||||||
- наружу выпускаем только через FastPanel/Nginx proxy.
|
|
||||||
|
|
||||||
## FastPanel proxy-логика
|
|
||||||
|
|
||||||
Пример:
|
|
||||||
|
|
||||||
- matrix.example.ru -> proxy_pass http://127.0.0.1:8008;
|
|
||||||
- chat.example.ru -> proxy_pass http://127.0.0.1:3000;
|
|
||||||
- admin.example.ru -> proxy_pass http://127.0.0.1:3100;
|
|
||||||
- sw-widget.example.ru -> отдельный webroot /var/www/swmessenger/public/widget или proxy.
|
|
||||||
|
|
||||||
Не использовать widget.stackworks.ru для нового SWMessenger-виджета, пока не будет отдельной команды.
|
|
||||||
|
|
||||||
## Что понадобится
|
## Что понадобится
|
||||||
|
|
||||||
@@ -108,8 +83,7 @@ rsync -a --delete public/ /var/www/swmessenger/public/
|
|||||||
|
|
||||||
Клиенты:
|
Клиенты:
|
||||||
- Android-клиент на базе Matrix SDK / форка Element;
|
- Android-клиент на базе Matrix SDK / форка Element;
|
||||||
- web-клиент, желательно сначала Element Web или собственный легкий клиент;
|
- web-клиент, желательно сначала Element Web или собственный лёгкий клиент.
|
||||||
- встраиваемый widget для сайтов.
|
|
||||||
|
|
||||||
## MVP проекта
|
## MVP проекта
|
||||||
|
|
||||||
@@ -118,17 +92,15 @@ rsync -a --delete public/ /var/www/swmessenger/public/
|
|||||||
2. Добавить installer/config wizard.
|
2. Добавить installer/config wizard.
|
||||||
3. Поднять Matrix Synapse локально.
|
3. Поднять Matrix Synapse локально.
|
||||||
4. Добавить FastPanel proxy-инструкции.
|
4. Добавить FastPanel proxy-инструкции.
|
||||||
5. Добавить webroot deploy для фронта и тестового виджета.
|
5. Добавить healthcheck.
|
||||||
6. Добавить healthcheck.
|
6. Добавить backup перед изменениями.
|
||||||
7. Добавить backup перед изменениями.
|
7. Подготовить Android-план.
|
||||||
8. Подготовить Android-план.
|
|
||||||
|
|
||||||
Минимальные функции:
|
Минимальные функции:
|
||||||
- регистрация/вход;
|
- регистрация/вход;
|
||||||
- личные сообщения;
|
- личные сообщения;
|
||||||
- групповые комнаты;
|
- групповые комнаты;
|
||||||
- отправка файлов/изображений;
|
- отправка файлов/изображений;
|
||||||
- тестовый виджет сайта;
|
|
||||||
- операторы/админы;
|
- операторы/админы;
|
||||||
- безопасная установка рядом с FastPanel;
|
- безопасная установка рядом с FastPanel;
|
||||||
- журнал состояния проекта в этом файле .sw.
|
- журнал состояния проекта в этом файле .sw.
|
||||||
@@ -136,9 +108,9 @@ rsync -a --delete public/ /var/www/swmessenger/public/
|
|||||||
## Правила ведения проекта
|
## Правила ведения проекта
|
||||||
|
|
||||||
1. Каждый заметный шаг записывать в этот файл .sw.
|
1. Каждый заметный шаг записывать в этот файл .sw.
|
||||||
2. Новые версии фиксировать в VERSION и changelog, когда появятся файлы проекта.
|
2. Новые версии фиксировать в VERSION и changelog.
|
||||||
3. Не плодить мусорные директории.
|
3. Не плодить мусорные директории.
|
||||||
4. Все сервисы SWMessenger держать отдельно от ArtistFlow и текущего widget.stackworks.ru.
|
4. Все сервисы SWMessenger держать отдельно от ArtistFlow и widget.stackworks.ru.
|
||||||
5. Не вносить изменения в существующие домены без явной команды.
|
5. Не вносить изменения в существующие домены без явной команды.
|
||||||
6. Для FastPanel давать точные proxy-конфиги, но не затирать чужие.
|
6. Для FastPanel давать точные proxy-конфиги, но не затирать чужие.
|
||||||
7. Перед потенциально опасными действиями добавлять backup-скрипт.
|
7. Перед потенциально опасными действиями добавлять backup-скрипт.
|
||||||
@@ -149,9 +121,11 @@ rsync -a --delete public/ /var/www/swmessenger/public/
|
|||||||
2026-05-08:
|
2026-05-08:
|
||||||
- Репозиторий viktor138irk/WSMessenger подключён.
|
- Репозиторий viktor138irk/WSMessenger подключён.
|
||||||
- Репозиторий был пустой.
|
- Репозиторий был пустой.
|
||||||
- Создан первый файл .sw с архитектурой, правилами безопасности и планом MVP.
|
- Создан первый файл .sw.
|
||||||
- Созданы VERSION, README.md и базовый docker-compose.yml.
|
- Созданы VERSION, README.md и базовый docker-compose.yml.
|
||||||
- Зафиксировано, что https://widget.stackworks.ru/ — существующий прод-виджет, его нельзя сносить, перезаписывать или ломать.
|
- Зафиксировано, что widget.stackworks.ru — отдельный production-виджет StackWorks.
|
||||||
|
- Зафиксировано, что widget.stackworks.ru пока никак не связывается с Matrix/SWMessenger.
|
||||||
|
- Зафиксировано, что новый виджет SWMessenger не планируется.
|
||||||
|
|
||||||
## Следующий шаг
|
## Следующий шаг
|
||||||
|
|
||||||
@@ -160,5 +134,4 @@ rsync -a --delete public/ /var/www/swmessenger/public/
|
|||||||
- docs/ARCHITECTURE.md;
|
- docs/ARCHITECTURE.md;
|
||||||
- scripts/install.sh;
|
- scripts/install.sh;
|
||||||
- scripts/healthcheck.sh;
|
- scripts/healthcheck.sh;
|
||||||
- public/widget/ минимальная тестовая заготовка виджета;
|
|
||||||
- .gitignore.
|
- .gitignore.
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user