diff --git a/HISTORY/2026-08-16-session-log.md b/HISTORY/2026-08-16-session-log.md index 2ad4d63..36dc279 100644 --- a/HISTORY/2026-08-16-session-log.md +++ b/HISTORY/2026-08-16-session-log.md @@ -97,3 +97,45 @@ - Первая проверка перед стартом: WebSocket upgrade (wss) через платформенный ingress — тестовый контейнер с WS-эндпоинтом + `wscat`. - ЖДЁМ решения пользователя по пути миграции. + +--- + +## 7. Создан ws-probe — тестовый контейнер для проверки wss + +**Команда пользователя:** «делай» (создать пробник + залить образ на Docker Hub; +для запуска в deck-UI нужен путь до образа). + +**Что сделано** (все шаги): +1. Создан каталог `ws-probe/` в IoT-репозитории: + - `main.go` — Go echo-сервер на `gorilla/websocket`: `GET /health` (JSON + status+version), `GET /ws` (echo + ping каждые 20с, read-deadline 60с, + сбрасывается pong'ами — мёртвые соединения закрываются), `GET /` (HTML). + Без кредов, без внешних зависимостей. + - `Dockerfile` — multi-stage golang:1.25 → distroless/static:nonroot, + порт 8080 (меняется env `PORT`), версия через ldflags. + - `Makefile` — `docker-build`/`docker-push`, `VERSION=v0.1.0`, `IMAGE=naeel/iot-ws-probe`. + - `go.mod`/`go.sum` — отдельный модуль (gorilla/websocket v1.5.3), чтобы + не тащить зависимость в основной go.mod IoT. +2. `.gitignore` — добавлен `ws-probe/ws-probe` (сборочный бинарник). +3. Локальные проверки: `go vet` OK; smoke: `/health` → `{"status":"ok","version":"v0.1.0"}`; + WS-апгрейд → `HTTP/1.1 101 Switching Protocols` (Sec-WebSocket-Accept корректный). +4. Docker: логин в Docker Hub под `naeel` активен (проверен `docker info`). +5. Образ собран и запушен (публичный): + - **`naeel/iot-ws-probe:v0.1.0`** (и `:latest`), + - digest `sha256:dc029be3e79fb37f15ce23477096e340ab181b96c0132dc2e443f341e36f0688`, + - размер 10.9MB. +6. Коммиты: `27cb40e` (ws-probe), `2a7ecd2` (HISTORY). Пуш НЕ делался (не просили). + +**Инструкция для deck-UI («Простой HTTP контейнер»):** +- Образ: `naeel/iot-ws-probe:v0.1.0` (уникальный тег — `latest` кэшируется + зеркалом платформы). +- Env vars: не нужны (порт 8080 — дефолт; при необходимости `PORT`). +- Никаких кредов не требуется. + +**Критерии проверки wss после деплоя** (будут применены): +- `curl -i -H "Connection: Upgrade" -H "Upgrade: websocket" ...` → 101; +- `wscat -c wss://<домен>/ws` → подключение, echo, соединение живёт 5–10 мин; +- переподключения стабильны; ping/pong проходят. + +**Следующий шаг:** пользователь создаёт контейнер в deck-UI с этим образом — +далее тест wss по критериям выше.