# Тестовый сервер UX/UI — 2026-10-07 Сервер161.104.46.222 предоставлен пользователем для временного тестирования с последующим удалением. Подготовка выполнена по структуре deploy/docker-compose.yml из main. Приложение собрано и запущено. Активный source HEAD673e5ba444ced304ea099a99108964e1c471482f;версия1.0.0-test.673e5ba. | Параметр | Проверенное состояние | | --- | --- | | ОС / архитектура | Debian13 trixie13.7 / x86_64 | | Ресурсы | 1CPU,1973MiB RAM,4GiB swap; исходно23GiB свободного диска | | Docker Engine | 29.8.2;systemd enabled/active;hello-world passed | | Compose / Buildx | v5.6.0 / v0.37.1 | | Каталог | /opt/mmapp-test;0700 | | Конфигурация | /opt/mmapp-test/compose.yaml;0600;docker compose config --quiet passed | | Секреты | Сгенерированы только на сервере в /opt/mmapp-test/.env;0600;в Git не сохранены | | 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-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 из закреплённого Git HEAD;образы собраны на сервере без push. Локально docker CLI сейчас отсутствует, на сервере доступен Docker. В корневом .dockerignore исключён backend, поэтому обычный backend build из корня не повторяет CI: использовать отдельный backend context, как main workflow. Не передавать .env.local,backend/.env,ключи и локальные node_modules/.next. После сборки/загрузки образов выполнить на сервере: ~~~bash cd /opt/mmapp-test docker compose config --quiet docker compose up -d --wait --wait-timeout 300 postgres backend frontend docker compose ps curl -fsS http://127.0.0.1:8000/health curl -fsS http://127.0.0.1:3000/health ~~~ Для браузера на рабочем ПК открыть SSH-туннель в отдельном терминале: ~~~powershell ssh -N -L 3000:127.0.0.1:3000 -L 8000:127.0.0.1:8000 root@161.104.46.222 ~~~ После запуска frontend открыть http://localhost:3000. AUTH_REQUIRED=false допустим для этого доступа через loopback/SSH; при приёмке прав включить AUTH_REQUIRED и согласованный тестовый issuer/Portal, используя серверный JWT secret. Конфигурация фиксирует конкретный image tag; автообновление main:latest не используется. ## Границы результата Выполнены подготовка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.