# SWChat — журнал проекта Дата старта: 2026-05-08 Репозиторий: https://github.com/viktor138irk/SWChat Рабочее имя продукта: SWChat Проект: собственный мессенджер Android/Web на базе Matrix-сервера. ## Главное правило проекта Не ломать существующие проекты на сервере. Защищённые production-активы: - ArtistFlow / artistflow.ru; - основной виджет StackWorks / https://widget.stackworks.ru/; - текущие сайты и домены FastPanel. ## Текущая архитектура установки Принято решение ставить SWChat Core на отдельный новый сервер. Старый сервер с FastPanel используется только для будущего frontend/web-клиента, без размещения Matrix/PostgreSQL/TURN. Разделение: - новый сервер: Matrix Synapse, PostgreSQL, TURN/STUN, backend, media storage, backups; - старый FastPanel сервер: frontend/web-client/витрина, без автоматических изменений FastPanel. ## Жёсткое правило про FastPanel Самостоятельно не трогать всё, что касается FastPanel. Запрещено без отдельной явной команды пользователя: - менять настройки FastPanel; - менять vhost/config доменов FastPanel; - применять proxy-настройки в FastPanel; - перезаписывать nginx-конфиги, которыми управляет FastPanel; - перезапускать/переустанавливать FastPanel; - ставить новый Nginx поверх FastPanel; - менять SSL-сертификаты через FastPanel; - менять webroot существующих сайтов; - трогать production-домены. Разрешено: - готовить инструкции; - готовить шаблоны proxy-конфигов; - готовить безопасные команды проверки; - готовить backup-скрипты; - описывать, что пользователь может сделать вручную в FastPanel. Применение любых изменений в FastPanel — только после отдельной явной команды пользователя. ## Постоянное правило ведения .sw Файл .sw является главным журналом проекта и ведётся постоянно. Обязательно записывать в .sw: - каждый значимый шаг разработки; - архитектурные решения; - запреты и ограничения; - защищённые домены и сервисы; - изменения версий; - что было создано или изменено; - текущий статус; - следующий шаг; - важные ошибки и выводы после исправлений. В новом диалоге продолжение проекта начинается с чтения .sw. ## Важно про widget.stackworks.ru widget.stackworks.ru — отдельный действующий production-проект StackWorks. На текущем этапе SWChat НЕ связывается с widget.stackworks.ru и НЕ создаёт новый виджет. Запрещено без отдельной явной команды: - менять vhost/config домена widget.stackworks.ru; - менять webroot виджета; - затирать файлы виджета; - менять SSL и настройки домена; - интегрировать виджет с Matrix; - создавать новый параллельный виджет для SWChat. ## Важно про ArtistFlow ArtistFlow должен оставаться нетронутым: - не менять vhost/config домена artistflow.ru; - не перезаписывать общий nginx.conf FastPanel; - не ставить новый Nginx поверх FastPanel; - не трогать MySQL/БД ArtistFlow; - не занимать порты FastPanel и текущих сайтов; - перед изменениями nginx/FastPanel делать backup конфигов. ## Принятая архитектура SWChat SWChat Core разворачивается на отдельном сервере. Базовая схема: - Matrix Synapse — отдельный сервис на 127.0.0.1:8008; - PostgreSQL — отдельная база для Matrix/SWChat; - backend/админка SWChat — отдельный локальный сервис; - web-client — на старом FastPanel-сервере в будущем; - Android-приложение — отдельный клиент Matrix, позже брендированный под SWChat/StackWorks. ## Домены проекта Рекомендуемая безопасная схема: - matrix.stackworks.ru — Matrix API / Synapse, новый SWChat Core сервер; - turn.stackworks.ru — TURN/STUN, новый SWChat Core сервер; - api-chat.stackworks.ru — backend API, новый SWChat Core сервер, если понадобится; - chat.stackworks.ru или messenger.stackworks.ru — web-клиент на старом FastPanel-сервере; - widget.stackworks.ru — отдельный production-виджет StackWorks, не часть Matrix/SWChat на текущем этапе. ## Предварительные директории Core-сервера - /opt/swchat/source — исходники GitHub; - /opt/swchat/app — backend/админка; - /opt/swchat/matrix — Matrix/Synapse; - /opt/swchat/data — данные контейнеров; - /opt/swchat/backups — резервные копии; - /opt/swchat/logs — логи. ## Что понадобится на новом Core-сервере - Ubuntu 24.04 или Ubuntu 22.04; - root-доступ; - Docker Engine; - Docker Compose plugin; - PostgreSQL в контейнере; - Matrix Synapse в контейнере; - coturn позже; - отдельные DNS-записи на IP нового сервера. ## MVP проекта Первая рабочая цель: 1. Подготовить базовый репозиторий. 2. Поднять Matrix Synapse на отдельном Core-сервере. 3. Подключить PostgreSQL. 4. Проверить локальный Matrix endpoint. 5. Подготовить DNS/proxy инструкции без изменения FastPanel. 6. Подготовить Android-план. Минимальные функции: - регистрация/вход; - личные сообщения; - групповые комнаты; - отправка файлов/изображений; - операторы/админы; - безопасная установка рядом с production, но на отдельном сервере; - журнал состояния проекта в этом файле .sw. ## Правила ведения проекта 1. Каждый заметный шаг записывать в этот файл .sw. 2. Новые версии фиксировать в VERSION и changelog. 3. Не плодить мусорные директории. 4. Все сервисы SWChat держать отдельно от ArtistFlow и widget.stackworks.ru. 5. Не вносить изменения в существующие домены без явной команды. 6. Для FastPanel давать точные proxy-конфиги, но не затирать чужие. 7. Перед потенциально опасными действиями добавлять backup-скрипт. 8. Любые действия с widget.stackworks.ru только после отдельной явной команды. 9. Ведение .sw обязательно на протяжении всего проекта. 10. Всё, что касается FastPanel, не трогать самостоятельно: только инструкции/шаблоны до отдельной команды пользователя. ## Текущий статус 2026-05-08: - Репозиторий переименован в viktor138irk/SWChat. - Создан файл .sw. - Созданы VERSION, README.md и базовый docker-compose.yml. - Созданы docs/ARCHITECTURE.md и docs/FASTPANEL_PROXY.md. - Созданы scripts/healthcheck.sh и scripts/install.sh. - Подготовлен автоустановщик. - Зафиксировано пользовательское имя продукта: SWChat. - Принято решение ставить SWChat Core на отдельный сервер. - Старый FastPanel-сервер использовать только для frontend/web-client в будущем. - Зафиксировано, что widget.stackworks.ru — отдельный production-виджет StackWorks. - Зафиксировано, что widget.stackworks.ru пока никак не связывается с Matrix/SWChat. - Зафиксировано, что новый виджет SWChat не планируется. - Зафиксировано постоянное правило: файл .sw ведётся всегда и обновляется после каждого значимого шага. - Зафиксировано жёсткое правило: всё, что касается FastPanel, самостоятельно не трогать; только готовить инструкции и шаблоны до отдельной явной команды пользователя. ## Текущий этап установки Запуск SWChat Core на новом отдельном сервере. Команда установки: ```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 ``` После установки проверить: ```bash sudo bash /opt/swchat/source/scripts/healthcheck.sh curl http://127.0.0.1:8008/_matrix/client/versions ``` ## Следующий шаг После получения вывода установки: - исправить ошибки installer при наличии; - проверить контейнеры; - проверить Matrix endpoint; - подготовить DNS для matrix.stackworks.ru на новый сервер; - только после этого готовить frontend на FastPanel-сервере.