chore(deploy): зафиксировать проверенное развёртывание тестового стенда

This commit is contained in:
Denozordec committed 2026-10-07 21:39:59 +07:00
1 parent 673e5ba444
commit 65d04baf2f
8 files changed
+294 -13

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
# UX/UI: протокол внешней приёмки 12.5
Статус на 2026-10-07: подготовлен по исходникам; на реальном стенде не выполнен. Локальные браузерные и DI-проверки записаны в [журнале](ux-ui-progress.md), общий объём — в [плане](ux-ui-plan.md). Результат каждого внешнего сценария заполняется после выполнения, с указанием HEAD и стенда.
Статус на 2026-10-07:стенд161.104.46.222 развёрнут;PG-1 проверенbootstrap/restart/schema/control-row,приложение прошлоreal smoke. ОстальныеPG/Q/ROS/интеграционные сценарии ещё не выполнены. [Паспорт и evidence](ux-ui-test-server.md). Локальные браузерные и DI-проверки записаны в [журнале](ux-ui-progress.md), общий объём — в [плане](ux-ui-plan.md). Результат каждого внешнего сценария заполняется после выполнения, с указанием HEAD и стенда.
## Паспорт стенда
+2 -2
View File
@@ -1,12 +1,12 @@
# План реализации UX/UI по пятичасовым окнам
Актуальное продолжение 2026-10-07: 12.5.1 — сервер161.104.46.222 подготовлен: Docker29.8.2,Compose5.6.0,Buildx,4GiB swap,отдельный тестовый Compose и PostgreSQL18.6 healthy. Следующий12.5.2: сборка закреплённых frontend/backend образов и bootstrap/smoke. Реальные сценарии12.5 ещё не выполнены; предыдущие main1186/context221 и44 чистых теста сохранены.
Актуальное продолжение 2026-10-07: тестовый Docker-стенд161.104.46.222 развёрнут,source673e5ba/version1.0.0-test.673e5ba. PG bootstrap/restart/schema/control-row проверены;Internet path timestamp defect исправлен. Real browser smoke:3экрана200/54APIreads200/0JSerrors/320px,безHTTP-моков. Следующий12.5.4 — PG backup/restore/concurrency/права/workers. RouterOS/интеграции ещё не проверены;вся12.5 остаётся открытой.
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-07. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
## Актуальная точка продолжения — 2026-10-07
Этапы0–11 завершены в описанных локальных границах. Локальная часть этапа12 проверена до12.3.83: main12.4.10 —1186/1186 на9680a64, context12.4.11 —221/221 на683148d с тем же runtime. Дополнительно прошли44 чистых теста, HTTP/DI/RBAC speed API и сборки. Этап12 остаётся открытым: стенд12.5.1 подготовлен на161.104.46.222;следующий12.5.2 — сборка и bootstrap/smoke,затем внешние сценарии. Протокол и ограничения: [внешняя приёмка](ux-ui-external-acceptance.md); точные результаты: [подробный журнал этапа12](ux-ui-stage-12.md).
Этапы0–11 завершены в описанных локальных границах. Локальная часть этапа12 проверена до12.3.83: main12.4.10 —1186/1186 на9680a64, context12.4.11 —221/221 на683148d с тем же runtime. Дополнительно прошли44 чистых теста, HTTP/DI/RBAC speed API и сборки. Этап12 остаётся открытым: стенд12.5.1–3 развёрнут на161.104.46.222,bootstrap/restart/smoke проверены;следующий12.5.4 — PG backup/restore/concurrency/права/workers,затемRouterOS/интеграции. Протокол и ограничения: [внешняя приёмка](ux-ui-external-acceptance.md); точные результаты: [подробный журнал этапа12](ux-ui-stage-12.md).
Реальные pg_dump/pg_restore, PG rollback и остановка UDP worker требуют внешней приёмки. Датированные продолжения ниже — история; точный следующий шаг также указан в начале [журнала](ux-ui-progress.md).
+7 -3
View File
@@ -1,6 +1,6 @@
# UX/UI: журнал реализации
Актуальное продолжение 2026-10-07: 12.5.1 — сервер161.104.46.222 подготовлен: Docker29.8.2,Compose5.6.0,Buildx,4GiB swap,отдельный тестовый Compose и PostgreSQL18.6 healthy. Следующий12.5.2: сборка закреплённых frontend/backend образов и bootstrap/smoke. Реальные сценарии12.5 ещё не выполнены; предыдущие main1186/context221 и44 чистых теста сохранены.
Актуальное продолжение 2026-10-07: тестовый Docker-стенд161.104.46.222 развёрнут,source673e5ba/version1.0.0-test.673e5ba. PG bootstrap/restart/schema/control-row проверены;Internet path timestamp defect исправлен. Real browser smoke:3экрана200/54APIreads200/0JSerrors/320px,безHTTP-моков. Следующий12.5.4 — PG backup/restore/concurrency/права/workers. RouterOS/интеграции ещё не проверены;вся12.5 остаётся открытой.
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
@@ -32,11 +32,15 @@
| 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 |
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в описанных границах:12.3.83,main1186/1186,context221/221. Этап остаётся в работе: стенд12.5.1 подготовлен,bootstrap/сценарии12.5 не выполнены. |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в описанных границах:12.3.83,main1186/1186,context221/221. Этап остаётся в работе: стенд12.5.1–3 развёрнут,bootstrap/smoke проверены;остальные сценарии12.5 не выполнены. |
## 12.5.3 — нормализация даты Internet path на границе API (2026-10-07)
Выявленный live-smoke дефект исправлен в mapper/GET latest: внешний PostgreSQL sampledAt преобразуется вISO без смены instant;payload не изменяется. Неверная дата/payload отклоняются502. Строгийfrontend DTO не ослаблен. Pure collector/mapper tests прошли,включаяPostgreSQL+07/ISO/invalid/null/blank,contracts/backend build passed. На сервере пока работает прежний образ;блок в работе до пересборки и live проверки.
Выявленный на реальном Docker/PG дефект исправлен mapper/GET latest: внешний PostgreSQL sampledAt преобразован вISO без смены instant;payload не изменён. Неверные дата/payload возвращают502. Строгийfrontend DTO сохранён. Pure collector/mapper tests и6frontend path contract tests прошли,contracts/backend build passed. Сетевые команды/правила не менялись.
Source673e5ba444ced304ea099a99108964e1c471482f:backend/frontend пересобраны с version1.0.0-test.673e5ba и revision labels;образыux-673e5ba запущены,backend/PG healthy. APIlatest отдаёт одинаковыеISO датыsnapshot/outer;записьPG и контрольные настройки/9миграций сохранились. [Итоговый real browser smoke](ux-ui/acceptance/test-server-smoke-fixed-2026-10-07.json):3экрана200,54APIreads200,0JSerrors,320px fits,Internet path подтверждён,HTTP-моков нет. Первое повторное ожидание скрытой подписи свежести поправлено раскрытием штатного блока;проверка данных послеpatch прошла. [Дашборд320px](ux-ui/screens/test-server-dashboard-320-2026-10-07.png) просмотрен.
[Паспорт стенда](ux-ui-test-server.md) содержит image IDs,версии,доступ и ограничения. SSH-туннельlocalhost3000/8000 открыт;приложение работаетнаloopback тестового сервера. Следующий12.5.4 — PG backup/restore/concurrency/права и остановка writers/workers по протоколу. NativeRouterOS/Telegram/Portal не проверены,вся12.5 не закрыта. Предыдущие общиеmain/context относятся к своимHEAD,не к этомуbackend patch. Локальные коммиты безpush;секреты/чужие изменения не включены.
## 12.5.2 — сборка Docker и запуск приложения на тестовом сервере (2026-10-07)
+6 -2
View File
@@ -1,6 +1,6 @@
# Этап 12: итоговая приёмка UX/UI
Актуальное продолжение 2026-10-07: 12.5.1 — сервер161.104.46.222 подготовлен: Docker29.8.2,Compose5.6.0,Buildx,4GiB swap,отдельный тестовый Compose и PostgreSQL18.6 healthy. Следующий12.5.2: сборка закреплённых frontend/backend образов и bootstrap/smoke. Реальные сценарии12.5 ещё не выполнены; предыдущие main1186/context221 и44 чистых теста сохранены.
Актуальное продолжение 2026-10-07: тестовый Docker-стенд161.104.46.222 развёрнут,source673e5ba/version1.0.0-test.673e5ba. PG bootstrap/restart/schema/control-row проверены;Internet path timestamp defect исправлен. Real browser smoke:3экрана200/54APIreads200/0JSerrors/320px,безHTTP-моков. Следующий12.5.4 — PG backup/restore/concurrency/права/workers. RouterOS/интеграции ещё не проверены;вся12.5 остаётся открытой.
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
@@ -971,4 +971,8 @@ Smoke обнаружил ошибку Internet path приHTTP200: внешни
## 12.5.3 — нормализация даты Internet path на границе API (2026-10-07)
Выявленный live-smoke дефект исправлен в mapper/GET latest: внешний PostgreSQL sampledAt преобразуется вISO без смены instant;payload не изменяется. Неверная дата/payload отклоняются502. Строгийfrontend DTO не ослаблен. Pure collector/mapper tests прошли,включаяPostgreSQL+07/ISO/invalid/null/blank,contracts/backend build passed. На сервере пока работает прежний образ;блок в работе до пересборки и live проверки.
Выявленный на реальном Docker/PG дефект исправлен mapper/GET latest: внешний PostgreSQL sampledAt преобразован вISO без смены instant;payload не изменён. Неверные дата/payload возвращают502. Строгийfrontend DTO сохранён. Pure collector/mapper tests и6frontend path contract tests прошли,contracts/backend build passed. Сетевые команды/правила не менялись.
Source673e5ba444ced304ea099a99108964e1c471482f:backend/frontend пересобраны с version1.0.0-test.673e5ba и revision labels;образыux-673e5ba запущены,backend/PG healthy. APIlatest отдаёт одинаковыеISO датыsnapshot/outer;записьPG и контрольные настройки/9миграций сохранились. [Итоговый real browser smoke](ux-ui/acceptance/test-server-smoke-fixed-2026-10-07.json):3экрана200,54APIreads200,0JSerrors,320px fits,Internet path подтверждён,HTTP-моков нет. Первое повторное ожидание скрытой подписи свежести поправлено раскрытием штатного блока;проверка данных послеpatch прошла. [Дашборд320px](ux-ui/screens/test-server-dashboard-320-2026-10-07.png) просмотрен.
[Паспорт стенда](ux-ui-test-server.md) содержит image IDs,версии,доступ и ограничения. SSH-туннельlocalhost3000/8000 открыт;приложение работаетнаloopback тестового сервера. Следующий12.5.4 — PG backup/restore/concurrency/права и остановка writers/workers по протоколу. NativeRouterOS/Telegram/Portal не проверены,вся12.5 не закрыта. Предыдущие общиеmain/context относятся к своимHEAD,не к этомуbackend patch. Локальные коммиты безpush;секреты/чужие изменения не включены.
+15 -4
View File
@@ -1,6 +1,6 @@
# Тестовый сервер UX/UI — 2026-10-07
Сервер161.104.46.222 предоставлен пользователем для временного тестирования с последующим удалением. Подготовка выполнена по структуре deploy/docker-compose.yml из main. Приложение ещё не собрано и не запущено.
Сервер161.104.46.222 предоставлен пользователем для временного тестирования с последующим удалением. Подготовка выполнена по структуре deploy/docker-compose.yml из main. Приложение собрано и запущено. Активный source HEAD673e5ba444ced304ea099a99108964e1c471482f;версия1.0.0-test.673e5ba.
| Параметр | Проверенное состояние |
| --- | --- |
@@ -14,13 +14,13 @@
| PostgreSQL | postgres:18-alpine,18.6;mmapp-test-postgres healthy;SELECT version() passed |
| Данные | Отдельный Compose project mmapp-test,том mmapp-test_mmapp-pgdata и каталог ./data |
| Доступ | PostgreSQL не публикуется;frontend3000/backend8000 привязаны к127.0.0.1 после запуска |
| Образы приложения | mmapp-test/backend:ux-6255f44 и mmapp-test/frontend:ux-6255f44;ещё не созданы |
| Образы приложения | mmapp-test/backend:ux-673e5ba и mmapp-test/frontend:ux-673e5ba;запущены |
Compose SHA256:99900547ed18b62e2cdcf9aae3975cbd6c3598a699a79dc04a4b7a0fec295348. Локальный и удалённый файлы совпали. Шаблоны: [Compose](../deploy/docker-compose.test.yml), [env без секретов](../deploy/env.test.example).
## Развёртывание приложения
Следующий блок: подготовить чистые frontend/backend build contexts по .gitea/workflows/docker.yml для проверенного runtime и собрать закреплённые образы без push. Локально docker CLI сейчас отсутствует, на сервере доступен Docker. В корневом .dockerignore исключён backend, поэтому обычный backend build из корня не повторяет CI: использовать отдельный backend context, как main workflow. Не передавать .env.local,backend/.env,ключи и локальные node_modules/.next.
Чистые frontend/backend build contexts подготовлены по .gitea/workflows/docker.yml из закреплённого Git HEAD;образы собраны на сервере без push. Локально docker CLI сейчас отсутствует, на сервере доступен Docker. В корневом .dockerignore исключён backend, поэтому обычный backend build из корня не повторяет CI: использовать отдельный backend context, как main workflow. Не передавать .env.local,backend/.env,ключи и локальные node_modules/.next.
После сборки/загрузки образов выполнить на сервере:
@@ -43,4 +43,15 @@ ssh -N -L 3000:127.0.0.1:3000 -L 8000:127.0.0.1:8000 [email protected]
## Границы результата
Это подготовка инфраструктуры12.5.1, не закрытие PostgreSQL PG-1: bootstrap/migrations ещё не выполнялись backend. Backup/restore,отказы транзакций,concurrency,workers,RouterOS,Telegram и остальные сценарии [12.5](ux-ui-external-acceptance.md) не выполнены. Для сети потребуются отдельные тестовые устройства/CHR; для интеграций — тестовые учётные записи. 1CPU/2GiB не представляют production performance.
Выполнены подготовка12.5.1,сборка/запуск12.5.2 и исправление обнаруженной live ошибки12.5.3. На реальном PG применились9миграций0000–0009 (без0001),проверены0008/0009 и CHECK статусов/resolution_version;restart сохранил контрольную настройкуuptime_settings(id1/retention14) и список миграций. Пустые API каталоги прочитаны успешно. Это PG-1 в границе bootstrap/restart/schema/control-row,не проверка backup/restore или транзакционных отказов.
[Первый smoke](ux-ui/acceptance/test-server-smoke-2026-10-07.json) обнаружил PostgreSQL timestamp в outer sampledAt Internet path. Исправлено producer ISO преобразование,без ослабленияfrontend. [Итоговый smoke](ux-ui/acceptance/test-server-smoke-fixed-2026-10-07.json):3экрана200,54чтенияAPI200,безJSerrors,320px fits,Internet path подтверждён. HTTP-моков нет. Первое повторное ожидание подписи свежести исправлено раскрытием штатного блока;ошибка данных послеpatch отсутствует. [Дашборд320px](ux-ui/screens/test-server-dashboard-320-2026-10-07.png) просмотрен.
Активные image IDs:
- backend: sha256:cfc25f3aa30ea39236af7eb60b4bbcdd7ae3ccc0663f5aff710a5f21776a9af2
- frontend: sha256:bfba2785b33a72965a029a3692178ba69c80eca75a12934c1dcc04c7970db53f
После пересборки контрольныйid1/retention14 и9миграций сохранились. Подробные build logs и контрольные файлы расположены в /opt/mmapp-test/artifacts. Секреты остаются только в серверном.env0600. Временный SSH-туннель3000/8000 открыт в этой задаче;если процесс остановится,повторить команду выше.
Следующий12.5.4 — PG backup/restore/concurrency/права и наблюдаемая остановка workers по [протоколу12.5](ux-ui-external-acceptance.md). Эти сценарии ещё не выполнены. Для RouterOS/Telegram/Portal и других интеграций нужны тестовые устройства/учётные записи. 1CPU/2GiB не представляют production performance.
@@ -0,0 +1,262 @@
{
"sourceHead": "673e5ba444ced304ea099a99108964e1c471482f",
"server": "161.104.46.222",
"url": "http://localhost:3000 via SSH",
"mockedResponses": false,
"results": [
{
"route": "/dashboard",
"status": 200,
"mainVisible": true,
"internetPathConfirmed": true
},
{
"route": "/uptime?tab=speed",
"status": 200,
"mainVisible": true
},
{
"route": "/servers",
"status": 200,
"mainVisible": true
}
],
"mobileFits": true,
"health": {
"status": "ok",
"timestamp": "2026-10-07T14:37:04.115Z",
"version": "1.0.0-test.673e5ba",
"eventLoopDelayMs": 20,
"flowWorker": {
"alive": false,
"bound": false,
"pendingSize": 0,
"dropped": 0,
"packetsReceived": 0
}
},
"pathMetadata": {
"sampledAt": "2026-10-07T14:32:24.630Z",
"snapshotSampledAt": "2026-10-07T14:32:24.630Z",
"collectionComplete": true
},
"pageErrors": [],
"apiReads": [
{
"path": "/api/auth/config",
"status": 200
},
{
"path": "/health",
"status": 200
},
{
"path": "/health",
"status": 200
},
{
"path": "/api/filters/gre-tunnels",
"status": 200
},
{
"path": "/api/events",
"status": 200
},
{
"path": "/api/sidebar-counts",
"status": 200
},
{
"path": "/api/servers",
"status": 200
},
{
"path": "/api/sidebar-counts",
"status": 200
},
{
"path": "/api/filters/rules",
"status": 200
},
{
"path": "/api/uptime/overview",
"status": 200
},
{
"path": "/api/bgp/catalog",
"status": 200
},
{
"path": "/api/internet-path/latest",
"status": 200
},
{
"path": "/api/filters/gre-tunnels",
"status": 200
},
{
"path": "/api/wireguard",
"status": 200
},
{
"path": "/api/traffic/servers",
"status": 200
},
{
"path": "/api/vxlan",
"status": 200
},
{
"path": "/api/evobgp/settings",
"status": 200
},
{
"path": "/api/auth/config",
"status": 200
},
{
"path": "/api/filters/gre-tunnels",
"status": 200
},
{
"path": "/api/sidebar-counts",
"status": 200
},
{
"path": "/health",
"status": 200
},
{
"path": "/health",
"status": 200
},
{
"path": "/api/sidebar-counts",
"status": 200
},
{
"path": "/api/servers",
"status": 200
},
{
"path": "/api/uptime/speed-probes",
"status": 200
},
{
"path": "/health",
"status": 200
},
{
"path": "/api/uptime/speed-test/runs",
"status": 200
},
{
"path": "/api/evobgp/settings",
"status": 200
},
{
"path": "/api/uptime/overview",
"status": 200
},
{
"path": "/api/auth/config",
"status": 200
},
{
"path": "/api/servers",
"status": 200
},
{
"path": "/health",
"status": 200
},
{
"path": "/api/sidebar-counts",
"status": 200
},
{
"path": "/api/filters/gre-tunnels",
"status": 200
},
{
"path": "/health",
"status": 200
},
{
"path": "/api/sidebar-counts",
"status": 200
},
{
"path": "/api/evobgp/settings",
"status": 200
},
{
"path": "/api/auth/config",
"status": 200
},
{
"path": "/api/filters/gre-tunnels",
"status": 200
},
{
"path": "/api/sidebar-counts",
"status": 200
},
{
"path": "/api/events",
"status": 200
},
{
"path": "/health",
"status": 200
},
{
"path": "/health",
"status": 200
},
{
"path": "/api/sidebar-counts",
"status": 200
},
{
"path": "/api/uptime/overview",
"status": 200
},
{
"path": "/api/servers",
"status": 200
},
{
"path": "/api/filters/rules",
"status": 200
},
{
"path": "/api/bgp/catalog",
"status": 200
},
{
"path": "/api/internet-path/latest",
"status": 200
},
{
"path": "/api/filters/gre-tunnels",
"status": 200
},
{
"path": "/api/wireguard",
"status": 200
},
{
"path": "/api/traffic/servers",
"status": 200
},
{
"path": "/api/vxlan",
"status": 200
},
{
"path": "/api/evobgp/settings",
"status": 200
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB