From 25f911495081921c36ddefc82263f193cb7a2f34 Mon Sep 17 00:00:00 2001 From: Repinoid Date: Fri, 2 Oct 2026 08:29:50 +0300 Subject: [PATCH] =?UTF-8?q?docs(history,todo):=20=D1=80=D1=83=D1=87=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D0=BF=D1=83=D0=B1=D0=BB=D0=B8=D0=BA=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D1=8B?= =?UTF-8?q?=20CRUD=20=D0=BD=D0=B0=20TEST=20+=20=D0=BE=D1=82=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D0=BA=D0=B0=20=D0=B2=20TODO=20HISTORY=20(=D1=80=D0=B0?= =?UTF-8?q?=D0=B7=D0=B4=D0=B5=D0=BB=205,=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=20=D1=81=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0=D0=BC?= =?UTF-8?q?=D0=B8=20=D1=81=D1=82=D0=B0=D0=BB=206):=20-=20=D1=81=D0=B1?= =?UTF-8?q?=D0=BE=D1=80=D0=BA=D0=B0=20test-=D1=81=D1=82=D0=B5=D0=BD=D0=B4?= =?UTF-8?q?=D0=B0=20=D0=B1=D0=B5=D0=B7=20=D0=BF=D1=83=D0=B1=D0=BB=D0=B8?= =?UTF-8?q?=D0=BA=D0=B0=D1=86=D0=B8=D0=B8=20(S3CFG=5FREGISTRY=20=D0=B2=20?= =?UTF-8?q?=D0=BD=D0=B5=D1=81=D1=83=D1=89=D0=B5=D1=81=D1=82=D0=B2=D1=83?= =?UTF-8?q?=D1=8E=D1=89=D0=B8=D0=B9=20=D0=BF=D1=83=D1=82=D1=8C=20=E2=80=94?= =?UTF-8?q?=20=20=20=D1=88=D1=82=D0=B0=D1=82=D0=BD=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D1=84=D0=BB=D0=B0=D0=B3=D0=B0=20=C2=ABbuild-only=C2=BB=20?= =?UTF-8?q?=D1=83=2004=20=D0=BD=D0=B5=D1=82);=20-=20=D0=B7=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B2=D0=BA=D0=B0=20=D0=B2=20S3=20(=D0=B0=D0=BB=D0=B8?= =?UTF-8?q?=D0=B0=D1=81=20regdocs=20=D0=B8=D0=B7=20secrets/.s3cfg=5Fregist?= =?UTF-8?q?ry)=20=D0=B8=20=D0=BA=D0=BE=D0=BF=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=B0=20=D0=92=D0=9C=20=20=20=D0=B2?= =?UTF-8?q?=20/var/www/tf-docs/nubes-test/curated/crud/three=5Fapps/=20?= =?UTF-8?q?=E2=80=94=20=D1=81=D0=B0=D0=B9=D1=82=20=D0=BE=D1=82=D0=B4=D0=B0?= =?UTF-8?q?=D1=91=D1=82=20nginx=20=D1=81=20=D0=92=D0=9C,=20=20=20=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D0=B8=D0=B7=20S3;=20-=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D0=BA=D0=B0:=20=D0=B6=D0=B8=D0=B2=D0=BE?= =?UTF-8?q?=D0=B9=20URL=20200,=20163789=20=D0=B1=D0=B0=D0=B9=D1=82,=20cmp?= =?UTF-8?q?=20=D1=81=20=D0=BB=D0=BE=D0=BA=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE?= =?UTF-8?q?=D0=B9=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=BE=D0=B9=20=D1=81?= =?UTF-8?q?=D0=BE=D0=B2=D0=BF=D0=B0=D0=B4=D0=B0=D0=B5=D1=82,=20=20=20versi?= =?UTF-8?q?on=203.0.0,=205.0.5=20=D0=BD=D0=B5=D1=82;=20-=20=D0=BE=D0=B3?= =?UTF-8?q?=D1=80=D0=B0=D0=BD=D0=B8=D1=87=D0=B5=D0=BD=D0=B8=D0=B5:=20?= =?UTF-8?q?=D0=B2=20=D0=BC=D0=B5=D0=BD=D1=8E=20=D0=B4=D1=80=D1=83=D0=B3?= =?UTF-8?q?=D0=B8=D1=85=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=20?= =?UTF-8?q?=D1=81=D1=81=D1=8B=D0=BB=D0=BA=D0=B8=20=D0=BD=D0=B5=D1=82=20(?= =?UTF-8?q?=D0=B8=D1=85=20=D0=BD=D0=B0=D0=B2=D0=B8=D0=B3=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D1=8F=20=D1=81=D1=82=D0=B0=D1=80=D0=B0=D1=8F);=20-=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BC=D0=B5=D1=82=D0=BA=D0=B0:=20ssh=20naeel@5.172.178.2?= =?UTF-8?q?13=20=D0=B1=D0=B5=D0=B7=20=D0=B0=D0=BB=D0=B8=D0=B0=D1=81=D0=B0?= =?UTF-8?q?=20=D0=BD=D0=B5=20=D0=BF=D1=83=D1=81=D0=BA=D0=B0=D0=B5=D1=82,?= =?UTF-8?q?=20=D0=BD=D1=83=D0=B6=D0=B5=D0=BD=20=D0=B0=D0=BB=D0=B8=D0=B0?= =?UTF-8?q?=D1=81=20vps;=20-=20=D0=B2=20=C2=AB=D0=9C=D0=BE=D0=B8=20=D0=BE?= =?UTF-8?q?=D1=88=D0=B8=D0=B1=D0=BA=D0=B8=C2=BB=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BD=D0=B5=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BD=D0=B0=D1=8F=20=D1=84=D0=BE=D1=80=D0=BC=D1=83=D0=BB=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=BF=D1=80=D0=BE=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=BC=D0=B5=D0=BD=D1=8B.=20TODO:=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=20=C2=AB=D0=A7=D1=82=D0=BE=20=D1=83=D0=B6=D0=B5=20=D1=81?= =?UTF-8?q?=D0=B4=D0=B5=D0=BB=D0=B0=D0=BD=D0=BE=20=D0=B2=D1=80=D1=83=D1=87?= =?UTF-8?q?=D0=BD=D1=83=D1=8E=20(=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=BD=D0=BE)=C2=BB=20=D0=B8=20=D1=81=D0=BB=D0=B5=D0=B4=D1=81?= =?UTF-8?q?=D1=82=D0=B2=D0=B8=D0=B5=20=E2=80=94=20=D0=BF=D0=BE=D0=BB=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D0=BF=D0=B5=D1=80=D0=B5=D1=81=D0=B1=D0=BE=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BD=D1=83=D0=B6=D0=BD=D0=B0,=20=D1=87=D1=82?= =?UTF-8?q?=D0=BE=D0=B1=D1=8B=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80=20?= =?UTF-8?q?=D0=BF=D0=BE=D1=8F=D0=B2=D0=B8=D0=BB=D1=81=D1=8F=20=D0=B2=20?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D1=8E,=20=D0=B0=20=D0=B2=D0=B5=D1=80=D1=81?= =?UTF-8?q?=D0=B8=D0=B8=20=D1=81=D0=BE=D0=B2=D0=BF=D0=B0=D0=BB=D0=B8=20?= =?UTF-8?q?=D1=81=20profile.env.=20=D0=9F=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE:=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D1=8B=201-6=20=D0=B2=20HISTORY,=20=D1=81=D1=82=D1=80=D1=83?= =?UTF-8?q?=D0=BA=D1=82=D1=83=D1=80=D0=B0=20TODO=20=D0=BD=D0=B0=20=D0=BC?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D0=B5,=20=D0=B1=D0=BB=D0=BE=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=B4=D0=B0=20=D0=BF=D0=B0=D1=80=D0=BD=D1=8B=D0=B5?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rud_docs_page_and_manual_pages_pipeline.md | 38 ++++++++++++++++++- docs/TODO/docs_publish_stale_versions.md | 17 +++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/HISTORY/50_docs/2026-10-02_crud_docs_page_and_manual_pages_pipeline.md b/HISTORY/50_docs/2026-10-02_crud_docs_page_and_manual_pages_pipeline.md index ab70da1..b52d1b1 100644 --- a/HISTORY/50_docs/2026-10-02_crud_docs_page_and_manual_pages_pipeline.md +++ b/HISTORY/50_docs/2026-10-02_crud_docs_page_and_manual_pages_pipeline.md @@ -103,7 +103,39 @@ Задача вынесена отдельной работой: **`docs/TODO/docs_publish_stale_versions.md`** — там команды, порядок заливки и что ещё уедет вместе с пересборкой. Сейчас не делаем. -## 5. Мои ошибки в этой работе +## 5. Ручная публикация страницы CRUD на TEST (по команде владельца) + +> Команда: «`TEST_STAND/CRUD/README.md` — это опубликуй в Примерах ТЕСТ стенда. +> эта ручная заливка — временная, для демонстрации коллегам». + +Сделано **минимально** — одна страница, без полной пересборки сайта: + +1. Сборка test-стенда без публикации: `S3CFG_REGISTRY=/nonexistent-s3cfg-disable-publish + ./TOOLS/scripts/04_build_and_publish_docs.sh --profile TOOLS/config/test`. + Сборка проходит (mkdocs 1.6.1 системный, 9 с), затем скрипт сам падает на + `Error: S3 config not found` — штатный способ «собрать и не публиковать», + так как отдельного флага у `04` нет (`grep SKIP/NO_PUBLISH` — пусто). +2. Заливка в S3: отдельный `mc`-алиас `regdocs` из `secrets/.s3cfg_registry`, + затем `mc mirror --overwrite site/curated/crud/three_apps/ + regdocs/terraform-registry/docs/nubes-test/nubes/curated/crud/three_apps/`. +3. Доставка на живой сайт: nginx на ВМ **отдаёт сайт из `/var/www/tf-docs/`, а не из S3** + (S3-объект сам по себе в браузере не появляется), поэтому страница скопирована + на ВМ: `tar -C site/curated/crud -cf - three_apps | ssh vps 'mkdir -p + /var/www/tf-docs/nubes-test/curated/crud && tar -C … -xf -'`. + +Проверка (живой адрес): `https://tf-docs.nodejsk8s.dev.nubes.ru/nubes-test/curated/crud/three_apps/` +— HTTP 200, 163 789 байт, `cmp` с локальной сборкой — **совпадает байт в байт**; +на странице `version` = 3.0.0, вхождений `5.0.5` — ноль. + +⚠️ Ограничение: остальные страницы стенда не тронуты, их меню старое — **ссылки на +новую страницу в меню нет**, она доступна только по прямому адресу. Чтобы она появилась +в разделе «Проверенные примеры» в меню, нужна полная пересборка и публикация стенда — это +отдельная работа в `docs/TODO/docs_publish_stale_versions.md`. + +Дополнительно: `ssh naeel@5.172.178.213` без алиаса даёт `Permission denied (publickey)` — +рабочий доступ только через алиас `vps` (`~/.ssh/config` → ключ `~/.ssh/naeel_vm_id_ed25519`). + +## 6. Мои ошибки в этой работе - Разделение `pg/` + `apps/` назвал «разделение ответственности, decoupling» — терминологически неверно (это про модули кода) и заумно. Владелец: «пиши ПРАВИЛЬНО, не надо натягивать заумности». @@ -112,6 +144,10 @@ формулировка однобокая. - В README скрыл факт, что связь между состояниями **ручная** (файл `creds.json`), и подал это как полную независимость. +- Про домены написал «уникальны **в облаке** — один домен нельзя повесить на два инстанса». + Владелец поправил: в `*_domain` задаётся **имя**, а не домен — полный домен строит платформа + (`flask-crud` → `flask-crud.pythonk8s.dev.nubes.ru`), и вот эти полные имена уникальны. + Исправлено в README стенда и на странице сайта. - Дважды пропустил главное для читателя-новичка: **какие параметры он задаёт своими значениями** и **что имена/домены обязаны быть уникальными**. Пришлось напоминать владельцу. Причина одна: писал про технику (`apply`, выходы, `creds.json`), а не про то, что нужно человеку в начале. diff --git a/docs/TODO/docs_publish_stale_versions.md b/docs/TODO/docs_publish_stale_versions.md index 54c6a45..873177d 100644 --- a/docs/TODO/docs_publish_stale_versions.md +++ b/docs/TODO/docs_publish_stale_versions.md @@ -30,6 +30,23 @@ - локальная сборка `site/` (2026-09-28 09:40) — сборка dev-стенда, строки `5.0.5` в ней нет, то есть на S3 лежит сборка **старше** этого `site/`. +## Что уже сделано вручную (2026-10-02, временно) + +Страница `curated/crud/three_apps/` опубликована **только она**, отдельно от полной пересборки +(команда владельца: «эта ручная заливка — временная, для демонстрации коллегам»): + +- собрано `04 --profile TOOLS/config/test` с заблокированной публикацией (сборка без заливки сайта); +- залито в S3 (`docs/nubes-test/nubes/curated/crud/three_apps/index.html`); +- скопировано на ВМ в `/var/www/tf-docs/nubes-test/curated/crud/three_apps/` (именно оттуда + nginx отдаёт сайт — S3-объект сам по себе на живом сайте не появляется); +- проверено: `https://tf-docs.nodejsk8s.dev.nubes.ru/nubes-test/curated/crud/three_apps/` → 200, + версия на странице 3.0.0. + +Следствие: страница доступна **только по прямому адресу** — в меню остальных страниц стенда +ссылки на неё нет (их навигация от старой сборки). Полная пересборка ниже нужна именно для +этого: чтобы пример появился в разделе «Проверенные примеры» в меню, и чтобы версии во всех +примерах совпали с `profile.env`. + ## Что сделать 1. Для каждого устаревшего стенда — сборка и публикация: