commit bbd68dbab995870383afe48492a62dd1527b3efa Author: Виктор <78488229+viktor138irk@users.noreply.github.com> Date: Fri May 8 22:44:14 2026 +0900 Создан журнал проекта .sw diff --git a/.sw b/.sw new file mode 100644 index 0000000..e8e3927 --- /dev/null +++ b/.sw @@ -0,0 +1,146 @@ +# SWMessenger — журнал проекта + +Дата старта: 2026-05-08 +Репозиторий: https://github.com/viktor138irk/WSMessenger +Проект: собственный мессенджер Android/Web на базе Matrix-сервера. + +## Главное правило проекта + +Не ломать существующие проекты на сервере, особенно ArtistFlow. + +ArtistFlow должен оставаться нетронутым: +- не менять vhost/config домена artistflow.ru; +- не перезаписывать общий nginx.conf FastPanel; +- не ставить новый Nginx поверх FastPanel; +- не трогать MySQL/БД ArtistFlow; +- не занимать порты FastPanel и текущих сайтов; +- перед изменениями nginx/FastPanel делать backup конфигов. + +## Принятая архитектура + +SWMessenger разворачивается отдельно от FastPanel-сайтов и ArtistFlow. + +Базовая схема: +- FastPanel/Nginx — только reverse proxy и SSL-витрина; +- Matrix Synapse — отдельный сервис на 127.0.0.1:8008; +- PostgreSQL — отдельная база для Matrix/SWMessenger; +- backend/админка SWMessenger — отдельный локальный сервис; +- web/widget/client — можно выкладывать в вручную указанный webroot; +- Android-приложение — отдельный клиент Matrix, позже брендированный под SWMessenger/StackWorks. + +## Предварительные домены + +Домены можно менять в установщике, но рекомендуемая схема такая: + +- messenger.stackworks.ru или chat.stackworks.ru — web-клиент/панель; +- matrix.stackworks.ru — Matrix API reverse proxy на Synapse; +- widget.stackworks.ru — webroot или proxy для встраиваемого виджета; +- admin-messenger.stackworks.ru — админ-панель; +- turn.stackworks.ru — TURN/STUN для звонков, если потребуется. + +## Предварительные директории + +Рекомендуемая структура на сервере: + +- /opt/swmessenger/source — исходники GitHub; +- /opt/swmessenger/app — backend/админка; +- /opt/swmessenger/matrix — Matrix/Synapse; +- /opt/swmessenger/widget — виджет; +- /opt/swmessenger/element — web-клиент, если используем Element/Web; +- /opt/swmessenger/backups — резервные копии; +- /var/www/swmessenger/public — webroot для статики/виджета/фронта. + +## Принцип установки рядом с FastPanel + +Можно вручную указать webroot, как в проекте с виджетом. + +Файлы фронта/виджета можно тянуть в 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; +- widget.example.ru -> webroot /var/www/swmessenger/public/widget или proxy. + +## Что понадобится + +Сервер: +- Ubuntu; +- FastPanel уже может быть установлен; +- Docker Compose или systemd-сервисы; +- PostgreSQL; +- Matrix Synapse; +- coturn для звонков; +- Nginx/FastPanel reverse proxy; +- SSL Let’s Encrypt. + +Клиенты: +- Android-клиент на базе Matrix SDK / форка Element; +- web-клиент, желательно сначала Element Web или собственный легкий клиент; +- встраиваемый widget для сайтов. + +## MVP проекта + +Первая рабочая цель: +1. Подготовить базовый репозиторий. +2. Добавить installer/config wizard. +3. Поднять Matrix Synapse локально. +4. Добавить FastPanel proxy-инструкции. +5. Добавить webroot deploy для виджета/фронта. +6. Добавить healthcheck. +7. Добавить backup перед изменениями. +8. Подготовить Android-план. + +Минимальные функции: +- регистрация/вход; +- личные сообщения; +- групповые комнаты; +- отправка файлов/изображений; +- виджет сайта; +- операторы/админы; +- безопасная установка рядом с FastPanel; +- журнал состояния проекта в этом файле .sw. + +## Правила ведения проекта + +1. Каждый заметный шаг записывать в этот файл .sw. +2. Новые версии фиксировать в VERSION и changelog, когда появятся файлы проекта. +3. Не плодить мусорные директории. +4. Все сервисы SWMessenger держать отдельно от ArtistFlow. +5. Не вносить изменения в существующие домены без явной команды. +6. Для FastPanel давать точные proxy-конфиги, но не затирать чужие. +7. Перед потенциально опасными действиями добавлять backup-скрипт. + +## Текущий статус + +2026-05-08: +- Репозиторий viktor138irk/WSMessenger подключён. +- Репозиторий был пустой. +- Создан первый файл .sw с архитектурой, правилами безопасности и планом MVP. + +## Следующий шаг + +Создать базовую структуру проекта: +- README.md; +- VERSION; +- docs/FASTPANEL_PROXY.md; +- docs/ARCHITECTURE.md; +- scripts/install.sh; +- scripts/healthcheck.sh; +- docker-compose.yml для Synapse/PostgreSQL/coturn; +- public/widget/ минимальная заготовка виджета; +- .gitignore.