Зафиксировано новое имя продукта Pulse

Этот коммит содержится в:
Виктор
2026-05-09 14:57:22 +09:00
родитель 98e39cc471
Коммит 8e1eb7f3e8
+136 -63
Просмотреть файл
@@ -1,10 +1,35 @@
# SWChat — журнал проекта # Pulse — журнал проекта
Дата старта: 2026-05-08 Дата старта: 2026-05-08
Репозиторий: https://github.com/viktor138irk/SWChat Репозиторий: https://github.com/viktor138irk/SWChat
Рабочее имя продукта: SWChat Рабочее имя продукта: Pulse
Прежнее рабочее имя: SWChat
Проект: собственный мессенджер Android/Web на базе Matrix-сервера. Проект: собственный мессенджер Android/Web на базе Matrix-сервера.
## Решение по названию
2026-05-09 зафиксировано новое рабочее имя пользовательского продукта:
```text
Pulse
```
Брендовая формула:
```text
Pulse by StackWorks
```
Важно: репозитории пока остаются прежними:
- Core/backend/docs: https://github.com/viktor138irk/SWChat
- App/client: https://github.com/viktor138irk/SWChat-App
Технические имена пакетов не переименовывать без отдельного этапа миграции:
- Dart package name в pubspec.yaml пока должен оставаться `fluffychat`, пока все импорты используют `package:fluffychat/...`;
- Android applicationId пока: `ru.stackworks.swchat`;
- Android namespace пока: `ru.stackworks.swchat`;
- рабочий Android entrypoint может временно оставаться на legacy package, если это нужно для стабильного запуска.
## Главное правило проекта ## Главное правило проекта
Не ломать существующие проекты на сервере. Не ломать существующие проекты на сервере.
@@ -14,6 +39,61 @@
- основной виджет StackWorks / https://widget.stackworks.ru/; - основной виджет StackWorks / https://widget.stackworks.ru/;
- текущие сайты и домены FastPanel. - текущие сайты и домены FastPanel.
## Карта ребрендинга
Места, которые надо учитывать при ребрендинге Pulse/SWChat/другого будущего имени:
```text
pubspec.yaml
README.md
lib/config/app_config.dart
lib/config/setting_keys.dart
lib/config/routes.dart
lib/pages/intro/intro_page.dart
lib/pages/intro/intro_page_presenter.dart
lib/pages/login/login_view.dart
lib/pages/sign_in/sign_in_page.dart
lib/pages/chat_list/client_chooser_button.dart
lib/utils/platform_infos.dart
lib/utils/sign_in_flows/check_homeserver.dart
android/app/build.gradle.kts
android/app/src/main/AndroidManifest.xml
android/app/src/main/kotlin/chat/fluffy/fluffychat/MainActivity.kt
lib/l10n/intl_ru.arb
lib/l10n/intl_en.arb
assets/logo.png
assets/info-logo.png
assets/banner_transparent.png
```
Особо опасные места:
```text
pubspec.yaml name
Dart package imports package:fluffychat/...
Android applicationId
Android namespace
MainActivity package
AndroidManifest activity name
deep links
auth callback scheme
defaultHomeserver
presetHomeserver
applicationName
pushNotificationsAppId
pushNotificationsChannelId
support/donation links
About dialog legalese
login routes
add account routes
```
Правило ребрендинга:
- сначала менять пользовательский UI/тексты/логотипы;
- затем Android applicationId/namespace только с проверкой MainActivity;
- Dart package name и массовые импорты менять только отдельным этапом автоматической миграции;
- не менять `pubspec.yaml name` на новое имя, пока все импорты не переведены с `package:fluffychat/...`.
## Клиентские репозитории ## Клиентские репозитории
Клиентское приложение вынесено отдельно от Core: Клиентское приложение вынесено отдельно от Core:
@@ -26,39 +106,35 @@ FluffyChat импортирован в SWChat-App.
## Android package id ## Android package id
Принято имя Android package/applicationId для SWChat: Принятое текущее Android package/applicationId:
```text ```text
ru.stackworks.swchat ru.stackworks.swchat
``` ```
Это имя использовать при ребрендинге Android-приложения вместо старого FluffyChat package id: До отдельного package migration не менять на Pulse автоматически, чтобы не сломать сборку и запуск.
```text
chat.fluffy.fluffychat
```
## Регистрация и поиск людей ## Регистрация и поиск людей
В будущем клиенте SWChat регистрация должна быть доступна прямо из приложения. В будущем клиенте Pulse регистрация должна быть доступна прямо из приложения.
Пользовательский UX: Пользовательский UX:
- регистрация через приложение без консольных команд; - регистрация через приложение без консольных команд;
- обычный логин/ник, без ручного ввода домена; - обычный логин/ник, без ручного ввода домена;
- приложение само формирует Matrix user_id вида @username:matrix.stackworks.ru; - приложение само формирует Matrix user_id вида @username:matrix.stackworks.ru;
- поиск людей по нику, имени, телефону или внутреннему SWChat ID; - поиск людей по нику, имени, телефону или внутреннему Pulse ID;
- пользователь не должен вводить @user:matrix.stackworks.ru вручную; - пользователь не должен вводить @user:matrix.stackworks.ru вручную;
- кнопка «Написать» должна автоматически создавать direct room; - кнопка «Написать» должна автоматически создавать direct room;
- контакты и поиск должны выглядеть как в обычном Telegram-like мессенджере. - контакты и поиск должны выглядеть как в обычном Telegram-like мессенджере.
Техническая схема: Техническая схема:
- включить controlled registration или сделать регистрацию через отдельный SWChat backend; - включить controlled registration или сделать регистрацию через отдельный Pulse backend;
- backend создаёт Matrix-пользователя через Synapse Admin/Register API; - backend создаёт Matrix-пользователя через Synapse Admin/Register API;
- backend хранит публичный профиль SWChat: display_name, username, phone/email optional, avatar, статус; - backend хранит публичный профиль Pulse: display_name, username, phone/email optional, avatar, статус;
- поиск людей лучше делать через свой backend/index, а не напрямую через сырой Matrix room/user lookup; - поиск людей лучше делать через свой backend/index, а не напрямую через сырой Matrix room/user lookup;
- Matrix user_id и домен остаются внутренней технической деталью. - Matrix user_id и домен остаются внутренней технической деталью.
## Админка SWChat ## Админка Pulse
Админка нужна обязательно и должна быть отдельным модулем поверх Matrix/Synapse Admin API. Админка нужна обязательно и должна быть отдельным модулем поверх Matrix/Synapse Admin API.
@@ -76,17 +152,9 @@ chat.fluffy.fluffychat
- управление TURN/STUN после добавления звонков; - управление TURN/STUN после добавления звонков;
- диагностика состояния Synapse/PostgreSQL/proxy. - диагностика состояния Synapse/PostgreSQL/proxy.
Рекомендуемая схема:
- сначала можно использовать готовую Synapse Admin UI для технического управления;
- позже сделать собственную SWChat Admin Panel в стиле StackWorks;
- админку держать отдельно от публичного клиента;
- доступ к админке закрыть авторизацией, IP allowlist и HTTPS.
Админка не должна светить технические Matrix-термины обычным пользователям, но внутри может работать с Matrix user_id, room_id и Admin API.
## Текущая архитектура установки ## Текущая архитектура установки
Принято решение ставить SWChat Core на отдельный новый сервер. Принято решение ставить Core на отдельный новый сервер.
Разделение: Разделение:
- новый сервер: Matrix Synapse, PostgreSQL, TURN/STUN, backend, media storage, backups; - новый сервер: Matrix Synapse, PostgreSQL, TURN/STUN, backend, media storage, backups;
@@ -94,8 +162,8 @@ chat.fluffy.fluffychat
## Стратегия тестирования ## Стратегия тестирования
Сначала SWChat Core тестируется через официальные Matrix-клиенты. Сначала Core тестируется через официальные Matrix-клиенты.
Свой клиент не писать, пока не подтверждено, что серверная часть работает стабильно через официальные клиенты. Собственный клиент не писать, пока не подтверждено, что серверная часть работает стабильно через официальные клиенты.
## Жёсткое правило про FastPanel ## Жёсткое правило про FastPanel
@@ -147,26 +215,26 @@ ArtistFlow должен оставаться нетронутым.
- затирать файлы виджета; - затирать файлы виджета;
- менять SSL и настройки домена; - менять SSL и настройки домена;
- интегрировать виджет с Matrix; - интегрировать виджет с Matrix;
- создавать новый параллельный виджет для SWChat; - создавать новый параллельный виджет для Pulse;
- менять vhost/config домена artistflow.ru; - менять vhost/config домена artistflow.ru;
- трогать MySQL/БД ArtistFlow. - трогать MySQL/БД ArtistFlow.
## Принятая архитектура SWChat ## Принятая архитектура
SWChat Core разворачивается на отдельном сервере. Core разворачивается на отдельном сервере.
Базовая схема: Базовая схема:
- Matrix Synapse — отдельный сервис на приватном IP:8008; - Matrix Synapse — отдельный сервис на приватном IP:8008;
- PostgreSQL — отдельная база для Matrix/SWChat; - PostgreSQL — отдельная база для Matrix/Pulse;
- backend/админка SWChat — отдельный локальный сервис; - backend/админка Pulse — отдельный локальный сервис;
- web-client — на FastPanel-сервере в будущем; - web-client — на FastPanel-сервере в будущем;
- Android-приложение — отдельный клиент Matrix, позже брендированный под SWChat/StackWorks; - Android-приложение — отдельный клиент Matrix, позже брендированный под Pulse/StackWorks;
- FastPanel/Nginx reverse proxy — основной публичный HTTPS слой для SWChat. - FastPanel/Nginx reverse proxy — основной публичный HTTPS слой.
## Основная публичная схема ## Основная публичная схема
Выбрана архитектура: Выбрана архитектура:
FastPanel reverse proxy → SWChat Core. FastPanel reverse proxy → Core.
Поток трафика: Поток трафика:
- пользователь → FastPanel/Nginx; - пользователь → FastPanel/Nginx;
@@ -175,7 +243,7 @@ FastPanel reverse proxy → SWChat Core.
## UX-решение собственного клиента ## UX-решение собственного клиента
В собственном приложении SWChat комнатная структура Matrix должна быть скрыта от пользователя. В собственном приложении Pulse комнатная структура Matrix должна быть скрыта от пользователя.
Пользовательский интерфейс должен выглядеть как привычный Telegram-like мессенджер: Пользовательский интерфейс должен выглядеть как привычный Telegram-like мессенджер:
- список чатов; - список чатов;
@@ -193,7 +261,7 @@ FastPanel reverse proxy → SWChat Core.
Правило UX: Правило UX:
- основной ориентир интерфейса — Telegram; - основной ориентир интерфейса — Telegram;
- не использовать слово «комната» в пользовательском интерфейсе SWChat; - не использовать слово «комната» в пользовательском интерфейсе Pulse;
- использовать «чат», «диалог», «группа», «канал»; - использовать «чат», «диалог», «группа», «канал»;
- Matrix room показывать как обычный чат; - Matrix room показывать как обычный чат;
- создание direct room автоматизировать при первом сообщении контакту; - создание direct room автоматизировать при первом сообщении контакту;
@@ -202,11 +270,11 @@ FastPanel reverse proxy → SWChat Core.
## Приватная сеть между серверами ## Приватная сеть между серверами
FastPanel proxy сервер и SWChat Core объединены в локальную сеть. FastPanel proxy сервер и Core объединены в локальную сеть.
Текущие private IP: Текущие private IP:
- FastPanel proxy: 192.168.0.221; - FastPanel proxy: 192.168.0.221;
- SWChat Matrix/Core: 192.168.0.141. - Matrix/Core: 192.168.0.141.
Рекомендованная схема: Рекомендованная схема:
- FastPanel proxy имеет public IP; - FastPanel proxy имеет public IP;
@@ -229,11 +297,11 @@ FastPanel proxy сервер и SWChat Core объединены в локаль
Рекомендуемая безопасная схема: Рекомендуемая безопасная схема:
- matrix.stackworks.ru — Matrix API / Synapse через FastPanel reverse proxy; - matrix.stackworks.ru — Matrix API / Synapse через FastPanel reverse proxy;
- turn.stackworks.ru — TURN/STUN, новый SWChat Core сервер; - turn.stackworks.ru — TURN/STUN, новый Core сервер;
- api-chat.stackworks.ru — backend API, новый SWChat Core сервер, если понадобится; - api-chat.stackworks.ru — backend API, новый Core сервер, если понадобится;
- admin-chat.stackworks.ru — будущая SWChat Admin Panel; - admin-chat.stackworks.ru — будущая Pulse Admin Panel;
- chat.stackworks.ru или messenger.stackworks.ru — web-клиент на FastPanel-сервере; - chat.stackworks.ru или messenger.stackworks.ru — web-клиент на FastPanel-сервере;
- widget.stackworks.ru — отдельный production-виджет StackWorks, не часть Matrix/SWChat на текущем этапе. - widget.stackworks.ru — отдельный production-виджет StackWorks, не часть Matrix/Pulse на текущем этапе.
## Предварительные директории Core-сервера ## Предварительные директории Core-сервера
@@ -244,6 +312,8 @@ FastPanel proxy сервер и SWChat Core объединены в локаль
- /opt/swchat/backups — резервные копии; - /opt/swchat/backups — резервные копии;
- /opt/swchat/logs — логи. - /opt/swchat/logs — логи.
До отдельного этапа server rename директории `/opt/swchat/*` не менять.
## MVP проекта ## MVP проекта
Минимальные функции: Минимальные функции:
@@ -264,19 +334,21 @@ FastPanel proxy сервер и SWChat Core объединены в локаль
1. Каждый заметный шаг записывать в этот файл .sw. 1. Каждый заметный шаг записывать в этот файл .sw.
2. Новые версии фиксировать в VERSION и changelog. 2. Новые версии фиксировать в VERSION и changelog.
3. Не плодить мусорные директории. 3. Не плодить мусорные директории.
4. Все сервисы SWChat держать отдельно от ArtistFlow и widget.stackworks.ru. 4. Все сервисы Pulse держать отдельно от ArtistFlow и widget.stackworks.ru.
5. Не вносить изменения в существующие домены без явной команды. 5. Не вносить изменения в существующие домены без явной команды.
6. Для FastPanel давать точные proxy-конфиги, но не затирать чужие. 6. Для FastPanel давать точные proxy-конфиги, но не затирать чужие.
7. Перед потенциально опасными действиями добавлять backup-скрипт. 7. Перед потенциально опасными действиями добавлять backup-скрипт.
8. Любые действия с widget.stackworks.ru только после отдельной явной команды. 8. Любые действия с widget.stackworks.ru только после отдельной явной команды.
9. Ведение .sw обязательно на протяжении всего проекта. 9. Ведение .sw обязательно на протяжении всего проекта.
10. Всё, что касается текущего production FastPanel, не трогать самостоятельно: только инструкции/шаблоны до отдельной команды пользователя. 10. Всё, что касается текущего production FastPanel, не трогать самостоятельно: только инструкции/шаблоны до отдельной команды пользователя.
11. Собственный клиент SWChat начинать только после успешного тестирования Core через официальные Matrix-клиенты. 11. Собственный клиент Pulse начинать только после успешного тестирования Core через официальные Matrix-клиенты.
12. В собственном клиенте SWChat скрывать Matrix-комнаты и показывать пользователю обычные чаты/диалоги/группы. 12. В собственном клиенте Pulse скрывать Matrix-комнаты и показывать пользователю обычные чаты/диалоги/группы.
13. Основной визуальный и UX-ориентир будущего клиента — Telegram. 13. Основной визуальный и UX-ориентир будущего клиента — Telegram.
14. Админку SWChat делать отдельным защищённым модулем поверх Synapse Admin API. 14. Админку Pulse делать отдельным защищённым модулем поверх Synapse Admin API.
15. Android package/applicationId клиента SWChat: ru.stackworks.swchat. 15. Текущий Android applicationId клиента: ru.stackworks.swchat.
16. Регистрация и поиск людей должны быть реализованы как обычный мессенджерный UX без ручного ввода Matrix user_id с доменом. 16. Регистрация и поиск людей должны быть реализованы как обычный мессенджерный UX без ручного ввода Matrix user_id с доменом.
17. Бренд продукта зафиксирован как Pulse.
18. Brand/UI rename делать отдельно от технического Dart package rename.
## Текущий статус ## Текущий статус
@@ -287,14 +359,14 @@ FastPanel proxy сервер и SWChat Core объединены в локаль
- Созданы 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 на отдельный сервер. - Принято решение ставить Core на отдельный сервер.
- Старый FastPanel-сервер использовать только для frontend/web-client в будущем. - Старый FastPanel-сервер использовать только для frontend/web-client в будущем.
- Принято решение сначала тестировать SWChat Core официальными Matrix-клиентами, затем писать собственный клиент. - Принято решение сначала тестировать Core официальными Matrix-клиентами, затем писать собственный клиент.
- Исправлен docker-compose.yml: контейнеры переименованы в swchat-*, убран obsolete version, добавлены переменные .env. - Исправлен docker-compose.yml: контейнеры переименованы в swchat-*, убран obsolete version, добавлены переменные .env.
- Исправлена PostgreSQL locale для Synapse: добавлены POSTGRES_INITDB_ARGS с locale C. - Исправлена PostgreSQL locale для Synapse: добавлены POSTGRES_INITDB_ARGS с locale C.
- Исправлена проблема compose down без env: POSTGRES_PASSWORD получил безопасный fallback. - Исправлена проблема compose down без env: POSTGRES_PASSWORD получил безопасный fallback.
- SWChat Core успешно поднялся на новом сервере: swchat-synapse healthy, swchat-postgres up. - Core успешно поднялся на новом сервере: swchat-synapse healthy, swchat-postgres up.
- Локальный Matrix endpoint успешно отвечает: curl http://127.0.0.1:8008/_matrix/client/versions вернул HTTP 200 OK и JSON версий Matrix API. - Локальный Matrix endpoint успешно отвечает: curl http://127.0.0.1:8008/_matrix/client/versions вернул HTTP 200 OK и JSON версий Matrix API.
2026-05-09: 2026-05-09:
@@ -302,7 +374,7 @@ FastPanel proxy сервер и SWChat Core объединены в локаль
- В docker-compose.yml добавлен отдельный контейнер swchat-caddy. - В docker-compose.yml добавлен отдельный контейнер swchat-caddy.
- Создан deploy/caddy/Caddyfile. - Создан deploy/caddy/Caddyfile.
- Обновлён scripts/healthcheck.sh. - Обновлён scripts/healthcheck.sh.
- Принято финальное решение использовать схему FastPanel reverse proxy → SWChat Core. - Принято финальное решение использовать схему FastPanel reverse proxy → Core.
- Создан docs/FASTPANEL_REVERSE_PROXY.md. - Создан docs/FASTPANEL_REVERSE_PROXY.md.
- Создан docs/PRIVATE_NETWORK_BETWEEN_SERVERS.md. - Создан docs/PRIVATE_NETWORK_BETWEEN_SERVERS.md.
- Уточнены реальные private IP: FastPanel proxy 192.168.0.221, Matrix/Core 192.168.0.141. - Уточнены реальные private IP: FastPanel proxy 192.168.0.221, Matrix/Core 192.168.0.141.
@@ -312,11 +384,11 @@ FastPanel proxy сервер и SWChat Core объединены в локаль
- Проверено: registration_shared_secret присутствует в /opt/swchat/data/synapse/homeserver.yaml. - Проверено: registration_shared_secret присутствует в /opt/swchat/data/synapse/homeserver.yaml.
- Зафиксировано: bootstrap-регистрация администратора через register_new_matrix_user разрешена. - Зафиксировано: bootstrap-регистрация администратора через register_new_matrix_user разрешена.
- При входе в Element пойман M_LIMIT_EXCEEDED после нескольких попыток авторизации. - При входе в Element пойман M_LIMIT_EXCEEDED после нескольких попыток авторизации.
- Принято UX-решение: SWChat делать максимально в стиле Telegram. - Принято UX-решение: клиент делать максимально в стиле Telegram.
- Репозиторий клиентского приложения подтверждён: https://github.com/viktor138irk/SWChat-App. - Репозиторий клиентского приложения подтверждён: https://github.com/viktor138irk/SWChat-App.
- FluffyChat импортирован в SWChat-App. - FluffyChat импортирован в SWChat-App.
- Проверен pubspec.yaml FluffyChat в SWChat-App. - Проверен pubspec.yaml FluffyChat в SWChat-App.
- Зафиксирована необходимость SWChat Admin Panel для управления пользователями и модерации. - Зафиксирована необходимость Admin Panel для управления пользователями и модерации.
- SWChat-App успешно собран и запущен на Android-телефоне Samsung SM S928B. - SWChat-App успешно собран и запущен на Android-телефоне Samsung SM S928B.
- Rust/rustup/cargo установлены на Windows для сборки flutter_vodozemac/libvodozemac. - Rust/rustup/cargo установлены на Windows для сборки flutter_vodozemac/libvodozemac.
- Ошибка libvodozemac_bindings_dart.so устранена после установки Rust. - Ошибка libvodozemac_bindings_dart.so устранена после установки Rust.
@@ -326,35 +398,36 @@ FastPanel proxy сервер и SWChat Core объединены в локаль
- Начат первичный Android-ребрендинг SWChat-App. - Начат первичный Android-ребрендинг SWChat-App.
- build.gradle.kts переведён с chat.fluffy.fluffychat на ru.stackworks.swchat. - build.gradle.kts переведён с chat.fluffy.fluffychat на ru.stackworks.swchat.
- Android namespace изменён на ru.stackworks.swchat. - Android namespace изменён на ru.stackworks.swchat.
- Создан новый MainActivity.kt в пакете ru.stackworks.swchat.
- AndroidManifest.xml обновлён: приложение переименовано в SWChat. - AndroidManifest.xml обновлён: приложение переименовано в SWChat.
- Deep link scheme изменён с im.fluffychat на swchat. - Deep link scheme изменён с im.fluffychat на swchat.
- Auth callback scheme изменён с im.fluffychat.auth на swchat.auth. - Auth callback scheme изменён с im.fluffychat.auth на swchat.auth.
- Зафиксировано: следующий этап — полная миграция kotlin/java package tree и ребрендинг Flutter onboarding/UI. - Выявлена ошибка: преждевременная смена `pubspec.yaml name` ломает импорты `package:fluffychat/...`.
- Зафиксировано правило: `pubspec.yaml name` оставлять `fluffychat` до отдельной массовой миграции импортов.
- Зафиксировано новое рабочее имя пользовательского продукта: Pulse.
## Текущий этап установки ## Текущий этап установки
SWChat Core локально работает на новом отдельном сервере. Core локально работает на новом отдельном сервере.
Публичный HTTPS endpoint через FastPanel reverse proxy работает: Публичный HTTPS endpoint через FastPanel reverse proxy работает:
- https://matrix.stackworks.ru/_matrix/client/versions возвращает Matrix API JSON. - https://matrix.stackworks.ru/_matrix/client/versions возвращает Matrix API JSON.
Клиентский репозиторий SWChat-App содержит импортированный FluffyChat. Клиентский репозиторий SWChat-App содержит импортированный FluffyChat.
SWChat-App успешно запускается на Android и авторизуется на нашем Matrix homeserver. Android-клиент успешно запускается на Samsung SM S928B и авторизуется на нашем Matrix homeserver.
Начат ребрендинг Android-клиента SWChat. Идёт staged-ребрендинг пользовательского продукта в Pulse.
## Следующий шаг ## Следующий шаг
Следующий этап: Следующий этап:
- завершить миграцию kotlin/java package tree на ru.stackworks.swchat; - вернуть `pubspec.yaml name: fluffychat`, если локально или в GitHub оно было изменено;
- убрать FluffyChat branding из Flutter onboarding и настроек; - провести UI-ребрендинг SWChat → Pulse в app_config.dart, setting_keys.dart, intro/login/about/menu;
- убрать FluffyChat branding из Flutter onboarding, настроек, push-диалогов и локализаций;
- внедрить default homeserver matrix.stackworks.ru; - внедрить default homeserver matrix.stackworks.ru;
- подготовить собственные логотипы/splash/icon pack; - подготовить собственные логотипы/splash/icon pack Pulse;
- заложить регистрацию из приложения через SWChat backend или controlled Synapse registration; - заложить регистрацию из приложения через backend или controlled Synapse registration;
- заложить поиск людей по нику/имени/телефону без ручного ввода Matrix user_id; - заложить поиск людей по нику/имени/телефону без ручного ввода Matrix user_id;
- зафиксировать Telegram-like UX направление в клиенте;
- закрыть прямой доступ к Core:8008 из интернета и разрешить только 192.168.0.221; - закрыть прямой доступ к Core:8008 из интернета и разрешить только 192.168.0.221;
- проверить создание комнаты, отправку сообщений и файлов; - проверить создание комнаты, отправку сообщений и файлов;
- отдельным этапом поднять готовую Synapse Admin UI или начать SWChat Admin Panel. - отдельным этапом поднять готовую Synapse Admin UI или начать Pulse Admin Panel.