Актуализирован README под Pulse и private proxy

Этот коммит содержится в:
Виктор
2026-05-09 15:33:50 +09:00
родитель b443263368
Коммит a95d7039dc
+88 -28
Просмотреть файл
@@ -1,10 +1,13 @@
# SWChat # Pulse / SWChat
SWChat — self-hosted Android/Web мессенджер на базе Matrix для экосистемы StackWorks. Pulse — self-hosted Android/Web мессенджер на базе Matrix для экосистемы StackWorks.
Техническое имя репозитория пока остаётся SWChat. Пользовательский бренд продукта — `Pulse by StackWorks`.
Проект строится как собственная платформа связи: Проект строится как собственная платформа связи:
- Matrix Core на отдельном сервере; - Matrix Core на отдельном сервере;
- PostgreSQL; - PostgreSQL;
- FastPanel reverse proxy как публичный HTTPS слой;
- официальный Matrix/Element-клиент для первого тестирования; - официальный Matrix/Element-клиент для первого тестирования;
- будущий web-клиент; - будущий web-клиент;
- будущий Android-клиент; - будущий Android-клиент;
@@ -17,19 +20,19 @@ SWChat — self-hosted Android/Web мессенджер на базе Matrix д
Порядок: Порядок:
1. Поднять SWChat Core на отдельном сервере. 1. Поднять Pulse/SWChat Core на отдельном сервере.
2. Проверить Matrix/Synapse локально. 2. Проверить Matrix/Synapse локально.
3. Настроить публичный домен `matrix.stackworks.ru`. 3. Настроить публичный домен `matrix.stackworks.ru` через FastPanel reverse proxy.
4. Проверить работу через официальные клиенты Matrix/Element. 4. Проверить работу через официальные клиенты Matrix/Element.
5. Только после стабильной проверки начинать разработку собственного Android/Web-клиента. 5. Только после стабильной проверки продолжать глубокий ребрендинг собственного Android/Web-клиента.
Это нужно, чтобы не путать проблемы сервера с проблемами будущего собственного UI. Это нужно, чтобы не путать проблемы сервера с проблемами будущего собственного UI.
## Архитектура ## Архитектура
SWChat работает по split-server архитектуре. Pulse/SWChat работает по split-server архитектуре.
### Новый сервер: SWChat Core ### Новый сервер: Core
На новом сервере размещаются: На новом сервере размещаются:
- Matrix Synapse; - Matrix Synapse;
@@ -40,30 +43,33 @@ SWChat работает по split-server архитектуре.
- backups; - backups;
- diagnostics. - diagnostics.
Текущие private IP:
```text
FastPanel proxy: 192.168.0.221
Matrix/Core: 192.168.0.141
```
Рекомендуемые домены: Рекомендуемые домены:
```text ```text
matrix.stackworks.ru -> новый SWChat Core сервер matrix.stackworks.ru -> Matrix API / Synapse через FastPanel reverse proxy
turn.stackworks.ru -> новый SWChat Core сервер, позже turn.stackworks.ru -> новый Core сервер, позже
api-chat.stackworks.ru -> новый SWChat Core сервер, позже api-chat.stackworks.ru -> будущий backend API
admin-chat.stackworks.ru -> будущая Pulse Admin Panel
chat.stackworks.ru -> будущий web-клиент
``` ```
### Старый сервер с FastPanel ### Старый сервер с FastPanel
Старый сервер с FastPanel используется только для будущего frontend/web-клиента. Старый сервер с FastPanel используется как публичный HTTPS/reverse proxy слой и для будущего frontend/web-клиента.
На нём остаются отдельно: На нём остаются отдельно:
- ArtistFlow; - ArtistFlow;
- widget.stackworks.ru; - widget.stackworks.ru;
- текущие сайты StackWorks/FastPanel. - текущие сайты StackWorks/FastPanel.
SWChat installer не меняет FastPanel, не меняет vhost, не меняет SSL и не трогает существующие сайты. Installer не меняет FastPanel, не меняет vhost, не меняет SSL и не трогает существующие сайты.
Будущий frontend-домен:
```text
chat.stackworks.ru
```
## Что нельзя трогать ## Что нельзя трогать
@@ -73,9 +79,9 @@ chat.stackworks.ru
- текущие сайты FastPanel; - текущие сайты FastPanel;
- настройки FastPanel без отдельной явной команды. - настройки FastPanel без отдельной явной команды.
`widget.stackworks.ru` на текущем этапе никак не связан с Matrix/SWChat. Новый виджет SWChat не планируется. `widget.stackworks.ru` на текущем этапе никак не связан с Matrix/Pulse. Новый виджет Pulse не планируется.
## Установка SWChat Core ## Установка Core
На новом сервере Ubuntu: На новом сервере Ubuntu:
@@ -95,6 +101,45 @@ Installer:
- запускает контейнеры; - запускает контейнеры;
- не трогает FastPanel. - не трогает FastPanel.
## Настройка private reverse proxy
По умолчанию Matrix endpoint слушает только localhost:
```text
MATRIX_BIND_HOST=127.0.0.1
```
Для схемы FastPanel reverse proxy → Core нужно на Core-сервере в `/opt/swchat/.env` указать private IP Core:
```text
MATRIX_BIND_HOST=192.168.0.141
```
Затем перезапустить stack:
```bash
cd /opt/swchat/source
sudo docker compose --env-file /opt/swchat/.env up -d
```
И закрыть прямой публичный доступ к Matrix, разрешив порт 8008 только FastPanel proxy:
```bash
sudo FASTPANEL_PROXY_IP=192.168.0.221 MATRIX_PORT=8008 bash /opt/swchat/source/scripts/firewall_private_proxy.sh
```
Проверка с FastPanel proxy:
```bash
curl http://192.168.0.141:8008/_matrix/client/versions
```
Проверка публичного HTTPS endpoint:
```bash
curl https://matrix.stackworks.ru/_matrix/client/versions
```
## Проверка после установки ## Проверка после установки
```bash ```bash
@@ -120,15 +165,30 @@ curl http://127.0.0.1:8008/_matrix/client/versions
- стабильность Synapse; - стабильность Synapse;
- работу публичного домена. - работу публичного домена.
## Android-клиент
Клиентский репозиторий:
```text
https://github.com/viktor138irk/SWChat-App
```
Важное правило staged-ребрендинга:
- пользовательские тексты и UI можно переводить на Pulse;
- `pubspec.yaml name` пока должен оставаться `fluffychat`, пока импорты используют `package:fluffychat/...`;
- Android applicationId сейчас принят как `ru.stackworks.swchat`;
- массовая миграция Dart package/imports — отдельный этап.
## Структура проекта ## Структура проекта
```text ```text
.sw главный журнал проекта .sw главный журнал проекта
docker-compose.yml Matrix/PostgreSQL stack docker-compose.yml Matrix/PostgreSQL stack
scripts/install.sh автоустановщик Core-сервера scripts/install.sh автоустановщик Core-сервера
scripts/healthcheck.sh диагностика scripts/healthcheck.sh диагностика
docs/ документация scripts/firewall_private_proxy.sh безопасное ограничение 8008 под FastPanel proxy
VERSION версия проекта docs/ документация
VERSION версия проекта
``` ```
## Правило `.sw` ## Правило `.sw`
@@ -147,6 +207,6 @@ VERSION версия проекта
## Текущий статус ## Текущий статус
Версия: `0.1.0` Версия: `0.1.2`
Сейчас идёт этап запуска SWChat Core на отдельном сервере и тестирования через официальные Matrix-клиенты. Core работает на отдельном сервере, публичный HTTPS endpoint `https://matrix.stackworks.ru/_matrix/client/versions` уже был проверен через FastPanel reverse proxy. Текущий этап — закрепление private proxy/firewall схемы и staged-ребрендинг Android-клиента в Pulse без поломки FluffyChat imports.