chore: migrate container delivery from Gitea to Nexus #15

Open
opened 2026-09-17 20:29:24 +03:00 by codex-bot · 2 comments
Owner

Цель

Перенести хранение Docker images в nexus.ksv741.keenetic.pro (docker-hosted), сохранив Gitea для исходников и CI.

Объём

  • Исправить HTTPS token realm: /v2/ сейчас возвращает http://nexus.ksv741.keenetic.pro/repository/docker-hosted/v2/token.
  • Настроить отдельные Nexus identities для CI push и server pull; запретить перезапись release tags.
  • Скопировать frontend/backend 0.2.0 с сохранением manifest/index digests, платформ и attestations; проверить pull.
  • Переключить CI компонентов и пример Compose на Nexus.
  • Обновить эксплуатационную документацию и проверить откат на сохранённые Gitea references.

Ограничения

  • Старые packages не удалять.
  • Перенос registry не меняет приложение, SQLite или ключи.
  • Фактический server rollout требует доступа к deployment host.
## Цель Перенести хранение Docker images в `nexus.ksv741.keenetic.pro` (docker-hosted), сохранив Gitea для исходников и CI. ## Объём - [ ] Исправить HTTPS token realm: `/v2/` сейчас возвращает `http://nexus.ksv741.keenetic.pro/repository/docker-hosted/v2/token`. - [ ] Настроить отдельные Nexus identities для CI push и server pull; запретить перезапись release tags. - [ ] Скопировать frontend/backend `0.2.0` с сохранением manifest/index digests, платформ и attestations; проверить pull. - [ ] Переключить CI компонентов и пример Compose на Nexus. - [ ] Обновить эксплуатационную документацию и проверить откат на сохранённые Gitea references. ## Ограничения - Старые packages не удалять. - Перенос registry не меняет приложение, SQLite или ключи. - Фактический server rollout требует доступа к deployment host.
Author
Owner

Пробный выпуск: frontend/backend v0.2.1 подготовлены release-it, release PR frontend#23/backend#27 слиты fast-forward, аннотированные теги опубликованы. Все required checks release PR зелёные; backend SQLite/HTTP tests проходят на Linux (локально macOS native better-sqlite3/Node SIGABRT).

Frontend image run https://git.personal.ksv741.ru/WealthLedger/frontend/actions/runs/369: verify и Nexus login успешны, публикация остановлена защитой Cannot prove tag absence до build/push. Отдельная проверка: GET /v2/wealthledger/frontend/manifests/0.2.1 возвращает HTML 404; GET /repository/docker-hosted/v2/wealthledger/frontend/manifests/0.2.1 — Docker JSON 401. Нужна маршрутизация всего /v2/* в docker-hosted, а не только базового /v2/. HTTP token realm также сохраняется.

По решению пользователя одна identity wealthledger-ci для push/pull, Actions secrets настроены в обоих component repos. Проверяем миграцию новым релизом 0.2.1; старые 0.2.0 остаются в Gitea. После исправления инфраструктуры можно rerun того же tag workflow, предварительно проверив отсутствие опубликованного image. Production не обновлялся.

Пробный выпуск: frontend/backend v0.2.1 подготовлены release-it, release PR frontend#23/backend#27 слиты fast-forward, аннотированные теги опубликованы. Все required checks release PR зелёные; backend SQLite/HTTP tests проходят на Linux (локально macOS native better-sqlite3/Node SIGABRT). Frontend image run https://git.personal.ksv741.ru/WealthLedger/frontend/actions/runs/369: verify и Nexus login успешны, публикация остановлена защитой Cannot prove tag absence до build/push. Отдельная проверка: GET /v2/wealthledger/frontend/manifests/0.2.1 возвращает HTML 404; GET /repository/docker-hosted/v2/wealthledger/frontend/manifests/0.2.1 — Docker JSON 401. Нужна маршрутизация всего /v2/* в docker-hosted, а не только базового /v2/. HTTP token realm также сохраняется. По решению пользователя одна identity wealthledger-ci для push/pull, Actions secrets настроены в обоих component repos. Проверяем миграцию новым релизом 0.2.1; старые 0.2.0 остаются в Gitea. После исправления инфраструктуры можно rerun того же tag workflow, предварительно проверив отсутствие опубликованного image. Production не обновлялся.
Author
Owner

Итог пробного выпуска 0.2.1: release PR frontend#23/backend#27 и sync PR frontend#24/backend#28 слиты fast-forward. Проверено: v0.2.1, origin/main и origin/develop у frontend указывают на 8183b66e2f296e4b1df2cfa1b5d0a673168a560f; у backend — на 386c91670e1c33b846e2b929a7c3bd1e7190a662. Рабочие деревья чистые.

Backend image run https://git.personal.ksv741.ru/WealthLedger/backend/actions/runs/375: validate version, npm ci, verify и test:e2e успешны; login упал: Get https://nexus.ksv741.keenetic.pro/v2/: net/http: TLS handshake timeout. Шаг публикации пропущен. Frontend run #369 также остановлен до build/push (manifest check). Образы 0.2.1 не опубликованы этими workflows, production не обновлялся. Нужны исправление внешних Docker routes и стабильный TLS доступ с runner/его Docker daemon; затем rerun существующих tag workflows без изменения тегов.

Итог пробного выпуска 0.2.1: release PR frontend#23/backend#27 и sync PR frontend#24/backend#28 слиты fast-forward. Проверено: v0.2.1, origin/main и origin/develop у frontend указывают на 8183b66e2f296e4b1df2cfa1b5d0a673168a560f; у backend — на 386c91670e1c33b846e2b929a7c3bd1e7190a662. Рабочие деревья чистые. Backend image run https://git.personal.ksv741.ru/WealthLedger/backend/actions/runs/375: validate version, npm ci, verify и test:e2e успешны; login упал: Get https://nexus.ksv741.keenetic.pro/v2/: net/http: TLS handshake timeout. Шаг публикации пропущен. Frontend run #369 также остановлен до build/push (manifest check). Образы 0.2.1 не опубликованы этими workflows, production не обновлялся. Нужны исправление внешних Docker routes и стабильный TLS доступ с runner/его Docker daemon; затем rerun существующих tag workflows без изменения тегов.
codex-bot was assigned by hermes-agent 2026-10-12 00:04:28 +03:00
hermes-agent added this to the Инженерная основа и поставка milestone 2026-10-12 00:04:28 +03:00
hermes-agent added this to the WealthLedger — Delivery Board project 2026-10-12 00:04:28 +03:00
hermes-agent added the
Priority
Medium
3
Kind/Process
labels 2026-10-12 00:04:28 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/main#15