Зафиксирован старт установки SWChat Core на отдельном сервере
Этот коммит содержится в:
+65
-52
@@ -1,7 +1,7 @@
|
|||||||
# SWChat — журнал проекта
|
# SWChat — журнал проекта
|
||||||
|
|
||||||
Дата старта: 2026-05-08
|
Дата старта: 2026-05-08
|
||||||
Репозиторий: https://github.com/viktor138irk/WSMessenger
|
Репозиторий: https://github.com/viktor138irk/SWChat
|
||||||
Рабочее имя продукта: SWChat
|
Рабочее имя продукта: SWChat
|
||||||
Проект: собственный мессенджер Android/Web на базе Matrix-сервера.
|
Проект: собственный мессенджер Android/Web на базе Matrix-сервера.
|
||||||
|
|
||||||
@@ -14,6 +14,16 @@
|
|||||||
- основной виджет StackWorks / https://widget.stackworks.ru/;
|
- основной виджет StackWorks / https://widget.stackworks.ru/;
|
||||||
- текущие сайты и домены FastPanel.
|
- текущие сайты и домены 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.
|
Самостоятельно не трогать всё, что касается FastPanel.
|
||||||
@@ -55,12 +65,6 @@
|
|||||||
|
|
||||||
В новом диалоге продолжение проекта начинается с чтения .sw.
|
В новом диалоге продолжение проекта начинается с чтения .sw.
|
||||||
|
|
||||||
## Важно про имя проекта
|
|
||||||
|
|
||||||
Пользовательское имя продукта: SWChat.
|
|
||||||
|
|
||||||
Репозиторий пока остаётся viktor138irk/WSMessenger, но в интерфейсах, документации, установщике и дальнейшем планировании использовать название SWChat.
|
|
||||||
|
|
||||||
## Важно про widget.stackworks.ru
|
## Важно про widget.stackworks.ru
|
||||||
|
|
||||||
widget.stackworks.ru — отдельный действующий production-проект StackWorks.
|
widget.stackworks.ru — отдельный действующий production-проект StackWorks.
|
||||||
@@ -87,62 +91,53 @@ ArtistFlow должен оставаться нетронутым:
|
|||||||
|
|
||||||
## Принятая архитектура SWChat
|
## Принятая архитектура SWChat
|
||||||
|
|
||||||
SWChat разворачивается отдельно от FastPanel-сайтов, ArtistFlow и widget.stackworks.ru.
|
SWChat Core разворачивается на отдельном сервере.
|
||||||
|
|
||||||
Базовая схема:
|
Базовая схема:
|
||||||
- FastPanel/Nginx — reverse proxy и SSL-витрина, но изменения только вручную пользователем или по отдельной явной команде;
|
|
||||||
- Matrix Synapse — отдельный сервис на 127.0.0.1:8008;
|
- Matrix Synapse — отдельный сервис на 127.0.0.1:8008;
|
||||||
- PostgreSQL — отдельная база для Matrix/SWChat;
|
- PostgreSQL — отдельная база для Matrix/SWChat;
|
||||||
- backend/админка SWChat — отдельный локальный сервис;
|
- backend/админка SWChat — отдельный локальный сервис;
|
||||||
- web-client — отдельный web-клиент мессенджера;
|
- web-client — на старом FastPanel-сервере в будущем;
|
||||||
- Android-приложение — отдельный клиент Matrix, позже брендированный под SWChat/StackWorks.
|
- Android-приложение — отдельный клиент Matrix, позже брендированный под SWChat/StackWorks.
|
||||||
|
|
||||||
## Домены проекта
|
## Домены проекта
|
||||||
|
|
||||||
Рекомендуемая безопасная схема:
|
Рекомендуемая безопасная схема:
|
||||||
- matrix.stackworks.ru — Matrix API / Synapse;
|
- matrix.stackworks.ru — Matrix API / Synapse, новый SWChat Core сервер;
|
||||||
- chat.stackworks.ru или messenger.stackworks.ru — web-клиент;
|
- turn.stackworks.ru — TURN/STUN, новый SWChat Core сервер;
|
||||||
- admin-messenger.stackworks.ru — админ-панель;
|
- api-chat.stackworks.ru — backend API, новый SWChat Core сервер, если понадобится;
|
||||||
- turn.stackworks.ru — TURN/STUN для звонков, если потребуется;
|
- chat.stackworks.ru или messenger.stackworks.ru — web-клиент на старом FastPanel-сервере;
|
||||||
- widget.stackworks.ru — отдельный production-виджет StackWorks, не часть Matrix/SWChat на текущем этапе.
|
- widget.stackworks.ru — отдельный production-виджет StackWorks, не часть Matrix/SWChat на текущем этапе.
|
||||||
|
|
||||||
## Предварительные директории
|
## Предварительные директории Core-сервера
|
||||||
|
|
||||||
- /opt/swchat/source — исходники GitHub;
|
- /opt/swchat/source — исходники GitHub;
|
||||||
- /opt/swchat/app — backend/админка;
|
- /opt/swchat/app — backend/админка;
|
||||||
- /opt/swchat/matrix — Matrix/Synapse;
|
- /opt/swchat/matrix — Matrix/Synapse;
|
||||||
- /opt/swchat/element — web-клиент, если используем Element/Web;
|
- /opt/swchat/data — данные контейнеров;
|
||||||
- /opt/swchat/backups — резервные копии;
|
- /opt/swchat/backups — резервные копии;
|
||||||
- /var/www/swchat/public — webroot для фронта, если нужен.
|
- /opt/swchat/logs — логи.
|
||||||
|
|
||||||
Запрещено автоматически использовать webroot widget.stackworks.ru.
|
## Что понадобится на новом Core-сервере
|
||||||
|
|
||||||
## Что понадобится
|
- Ubuntu 24.04 или Ubuntu 22.04;
|
||||||
|
- root-доступ;
|
||||||
Сервер:
|
- Docker Engine;
|
||||||
- Ubuntu;
|
- Docker Compose plugin;
|
||||||
- FastPanel уже может быть установлен;
|
- PostgreSQL в контейнере;
|
||||||
- Docker Compose или systemd-сервисы;
|
- Matrix Synapse в контейнере;
|
||||||
- PostgreSQL;
|
- coturn позже;
|
||||||
- Matrix Synapse;
|
- отдельные DNS-записи на IP нового сервера.
|
||||||
- coturn для звонков;
|
|
||||||
- Nginx/FastPanel reverse proxy;
|
|
||||||
- SSL Let’s Encrypt.
|
|
||||||
|
|
||||||
Клиенты:
|
|
||||||
- Android-клиент на базе Matrix SDK / форка Element;
|
|
||||||
- web-клиент, желательно сначала Element Web или собственный лёгкий клиент.
|
|
||||||
|
|
||||||
## MVP проекта
|
## MVP проекта
|
||||||
|
|
||||||
Первая рабочая цель:
|
Первая рабочая цель:
|
||||||
1. Подготовить базовый репозиторий.
|
1. Подготовить базовый репозиторий.
|
||||||
2. Добавить installer/config wizard.
|
2. Поднять Matrix Synapse на отдельном Core-сервере.
|
||||||
3. Поднять Matrix Synapse локально.
|
3. Подключить PostgreSQL.
|
||||||
4. Добавить FastPanel proxy-инструкции без автоматического применения.
|
4. Проверить локальный Matrix endpoint.
|
||||||
5. Добавить healthcheck.
|
5. Подготовить DNS/proxy инструкции без изменения FastPanel.
|
||||||
6. Добавить backup перед изменениями.
|
6. Подготовить Android-план.
|
||||||
7. Подготовить Android-план.
|
|
||||||
|
|
||||||
Минимальные функции:
|
Минимальные функции:
|
||||||
- регистрация/вход;
|
- регистрация/вход;
|
||||||
@@ -150,7 +145,7 @@ SWChat разворачивается отдельно от FastPanel-сайто
|
|||||||
- групповые комнаты;
|
- групповые комнаты;
|
||||||
- отправка файлов/изображений;
|
- отправка файлов/изображений;
|
||||||
- операторы/админы;
|
- операторы/админы;
|
||||||
- безопасная установка рядом с FastPanel;
|
- безопасная установка рядом с production, но на отдельном сервере;
|
||||||
- журнал состояния проекта в этом файле .sw.
|
- журнал состояния проекта в этом файле .sw.
|
||||||
|
|
||||||
## Правила ведения проекта
|
## Правила ведения проекта
|
||||||
@@ -169,28 +164,46 @@ SWChat разворачивается отдельно от FastPanel-сайто
|
|||||||
## Текущий статус
|
## Текущий статус
|
||||||
|
|
||||||
2026-05-08:
|
2026-05-08:
|
||||||
- Репозиторий viktor138irk/WSMessenger подключён.
|
- Репозиторий переименован в viktor138irk/SWChat.
|
||||||
- Репозиторий был пустой.
|
- Создан файл .sw.
|
||||||
- Создан первый файл .sw.
|
|
||||||
- Созданы VERSION, README.md и базовый docker-compose.yml.
|
- Созданы VERSION, README.md и базовый docker-compose.yml.
|
||||||
- Созданы docs/ARCHITECTURE.md и docs/FASTPANEL_PROXY.md.
|
- Созданы docs/ARCHITECTURE.md и docs/FASTPANEL_PROXY.md.
|
||||||
- Созданы scripts/healthcheck.sh и scripts/install.sh.
|
- Созданы scripts/healthcheck.sh и scripts/install.sh.
|
||||||
- Подготовлен автоустановщик.
|
- Подготовлен автоустановщик.
|
||||||
- Зафиксировано пользовательское имя продукта: SWChat.
|
- Зафиксировано пользовательское имя продукта: SWChat.
|
||||||
|
- Принято решение ставить SWChat Core на отдельный сервер.
|
||||||
|
- Старый FastPanel-сервер использовать только для frontend/web-client в будущем.
|
||||||
- Зафиксировано, что widget.stackworks.ru — отдельный production-виджет StackWorks.
|
- Зафиксировано, что widget.stackworks.ru — отдельный production-виджет StackWorks.
|
||||||
- Зафиксировано, что widget.stackworks.ru пока никак не связывается с Matrix/SWChat.
|
- Зафиксировано, что widget.stackworks.ru пока никак не связывается с Matrix/SWChat.
|
||||||
- Зафиксировано, что новый виджет SWChat не планируется.
|
- Зафиксировано, что новый виджет SWChat не планируется.
|
||||||
- Зафиксировано постоянное правило: файл .sw ведётся всегда и обновляется после каждого значимого шага.
|
- Зафиксировано постоянное правило: файл .sw ведётся всегда и обновляется после каждого значимого шага.
|
||||||
- Зафиксировано жёсткое правило: всё, что касается FastPanel, самостоятельно не трогать; только готовить инструкции и шаблоны до отдельной явной команды пользователя.
|
- Зафиксировано жёсткое правило: всё, что касается 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
|
||||||
|
```
|
||||||
|
|
||||||
## Следующий шаг
|
## Следующий шаг
|
||||||
|
|
||||||
Следующий этап:
|
После получения вывода установки:
|
||||||
- привести README, install.sh, healthcheck.sh и docs к имени SWChat;
|
- исправить ошибки installer при наличии;
|
||||||
- .gitignore;
|
- проверить контейнеры;
|
||||||
- update system foundation;
|
- проверить Matrix endpoint;
|
||||||
- auto backup scripts;
|
- подготовить DNS для matrix.stackworks.ru на новый сервер;
|
||||||
- Matrix registration helper;
|
- только после этого готовить frontend на FastPanel-сервере.
|
||||||
- diagnostics;
|
|
||||||
- web-client skeleton;
|
|
||||||
- Android architecture draft.
|
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user