Зафиксирован защищённый домен widget.stackworks.ru

Этот коммит содержится в:
Виктор
2026-05-08 22:48:08 +09:00
родитель 0cb531457a
Коммит 3e7a141498
+35 -17
Просмотреть файл
@@ -6,7 +6,12 @@
## Главное правило проекта ## Главное правило проекта
Не ломать существующие проекты на сервере, особенно ArtistFlow. Не ломать существующие проекты на сервере.
Защищённые прод-активы:
- ArtistFlow / artistflow.ru;
- текущий чат-виджет / https://widget.stackworks.ru/;
- текущие сайты и домены FastPanel.
ArtistFlow должен оставаться нетронутым: ArtistFlow должен оставаться нетронутым:
- не менять vhost/config домена artistflow.ru; - не менять vhost/config домена artistflow.ru;
@@ -16,25 +21,34 @@ ArtistFlow должен оставаться нетронутым:
- не занимать порты FastPanel и текущих сайтов; - не занимать порты FastPanel и текущих сайтов;
- перед изменениями nginx/FastPanel делать backup конфигов. - перед изменениями nginx/FastPanel делать backup конфигов.
Текущий widget.stackworks.ru тоже должен оставаться нетронутым:
- не менять vhost/config домена widget.stackworks.ru без отдельной команды;
- не менять webroot существующего виджета без отдельной команды;
- не затирать файлы текущего виджета;
- не менять SSL-сертификат и proxy-настройки домена widget.stackworks.ru без отдельной команды;
- новый SWMessenger widget разрабатывать в отдельной директории/поддомене, пока не будет явной команды на замену текущего виджета.
## Принятая архитектура ## Принятая архитектура
SWMessenger разворачивается отдельно от FastPanel-сайтов и ArtistFlow. 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/widget/client — можно выкладывать в вручную указанный webroot; - web/client — можно выкладывать в вручную указанный webroot;
- новый widget SWMessenger — только в отдельный тестовый webroot/поддомен до явной команды на замену widget.stackworks.ru;
- Android-приложение — отдельный клиент Matrix, позже брендированный под SWMessenger/StackWorks. - Android-приложение — отдельный клиент Matrix, позже брендированный под SWMessenger/StackWorks.
## Предварительные домены ## Предварительные домены
Домены можно менять в установщике, но рекомендуемая схема такая: Домены можно менять в установщике, но рекомендуемая безопасная схема такая:
- messenger.stackworks.ru или chat.stackworks.ru — web-клиент/панель; - messenger.stackworks.ru или chat.stackworks.ru — web-клиент/панель;
- matrix.stackworks.ru — Matrix API reverse proxy на Synapse; - matrix.stackworks.ru — Matrix API reverse proxy на Synapse;
- widget.stackworks.ru — webroot или proxy для встраиваемого виджета; - 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 для звонков, если потребуется.
@@ -45,16 +59,18 @@ SWMessenger разворачивается отдельно от FastPanel-са
- /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 — виджет; - /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 без отдельной команды.
## Принцип установки рядом с FastPanel ## Принцип установки рядом с FastPanel
Можно вручную указать webroot, как в проекте с виджетом. Можно вручную указать webroot, как в проекте с виджетом, но нельзя случайно указать текущий webroot widget.stackworks.ru, если нет явной команды на замену.
Файлы фронта/виджета можно тянуть в webroot: Файлы фронта/тестового виджета можно тянуть в отдельный webroot:
```bash ```bash
cd /opt/swmessenger/source cd /opt/swmessenger/source
@@ -74,7 +90,9 @@ rsync -a --delete public/ /var/www/swmessenger/public/
- matrix.example.ru -> proxy_pass http://127.0.0.1:8008; - matrix.example.ru -> proxy_pass http://127.0.0.1:8008;
- chat.example.ru -> proxy_pass http://127.0.0.1:3000; - chat.example.ru -> proxy_pass http://127.0.0.1:3000;
- admin.example.ru -> proxy_pass http://127.0.0.1:3100; - admin.example.ru -> proxy_pass http://127.0.0.1:3100;
- widget.example.ru -> webroot /var/www/swmessenger/public/widget или proxy. - sw-widget.example.ru -> отдельный webroot /var/www/swmessenger/public/widget или proxy.
Не использовать widget.stackworks.ru для нового SWMessenger-виджета, пока не будет отдельной команды.
## Что понадобится ## Что понадобится
@@ -100,7 +118,7 @@ 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. Добавить webroot deploy для фронта и тестового виджета.
6. Добавить healthcheck. 6. Добавить healthcheck.
7. Добавить backup перед изменениями. 7. Добавить backup перед изменениями.
8. Подготовить Android-план. 8. Подготовить Android-план.
@@ -110,7 +128,7 @@ rsync -a --delete public/ /var/www/swmessenger/public/
- личные сообщения; - личные сообщения;
- групповые комнаты; - групповые комнаты;
- отправка файлов/изображений; - отправка файлов/изображений;
- виджет сайта; - тестовый виджет сайта;
- операторы/админы; - операторы/админы;
- безопасная установка рядом с FastPanel; - безопасная установка рядом с FastPanel;
- журнал состояния проекта в этом файле .sw. - журнал состояния проекта в этом файле .sw.
@@ -120,10 +138,11 @@ rsync -a --delete public/ /var/www/swmessenger/public/
1. Каждый заметный шаг записывать в этот файл .sw. 1. Каждый заметный шаг записывать в этот файл .sw.
2. Новые версии фиксировать в VERSION и changelog, когда появятся файлы проекта. 2. Новые версии фиксировать в VERSION и changelog, когда появятся файлы проекта.
3. Не плодить мусорные директории. 3. Не плодить мусорные директории.
4. Все сервисы SWMessenger держать отдельно от ArtistFlow. 4. Все сервисы SWMessenger держать отдельно от ArtistFlow и текущего widget.stackworks.ru.
5. Не вносить изменения в существующие домены без явной команды. 5. Не вносить изменения в существующие домены без явной команды.
6. Для FastPanel давать точные proxy-конфиги, но не затирать чужие. 6. Для FastPanel давать точные proxy-конфиги, но не затирать чужие.
7. Перед потенциально опасными действиями добавлять backup-скрипт. 7. Перед потенциально опасными действиями добавлять backup-скрипт.
8. Любые действия с widget.stackworks.ru только после отдельной явной команды.
## Текущий статус ## Текущий статус
@@ -131,16 +150,15 @@ rsync -a --delete public/ /var/www/swmessenger/public/
- Репозиторий viktor138irk/WSMessenger подключён. - Репозиторий viktor138irk/WSMessenger подключён.
- Репозиторий был пустой. - Репозиторий был пустой.
- Создан первый файл .sw с архитектурой, правилами безопасности и планом MVP. - Создан первый файл .sw с архитектурой, правилами безопасности и планом MVP.
- Созданы VERSION, README.md и базовый docker-compose.yml.
- Зафиксировано, что https://widget.stackworks.ru/ — существующий прод-виджет, его нельзя сносить, перезаписывать или ломать.
## Следующий шаг ## Следующий шаг
Создать базовую структуру проекта: Создать базовую структуру проекта:
- README.md;
- VERSION;
- docs/FASTPANEL_PROXY.md; - docs/FASTPANEL_PROXY.md;
- docs/ARCHITECTURE.md; - docs/ARCHITECTURE.md;
- scripts/install.sh; - scripts/install.sh;
- scripts/healthcheck.sh; - scripts/healthcheck.sh;
- docker-compose.yml для Synapse/PostgreSQL/coturn; - public/widget/ минимальная тестовая заготовка виджета;
- public/widget/ минимальная заготовка виджета;
- .gitignore. - .gitignore.