docs: document Nexus delivery with shared account (WealthLedger/docs#18) (#48)
Docs security / security (push) Successful in 7s
Docs verify / verify (push) Successful in 14s

This commit was merged in pull request #48.
This commit is contained in:
2026-10-17 13:01:25 +03:00
parent 56885f450b
commit 550143aea1
+13 -5
View File
@@ -12,7 +12,7 @@ Development-команды ниже выполняются из workspace с che
- Docker Engine с Compose plugin **не ниже 2.24.4** (`!override` в development), - Docker Engine с Compose plugin **не ниже 2.24.4** (`!override` в development),
доступ к registry и достаточно свободного диска для non-root UID 1000. доступ к registry и достаточно свободного диска для non-root UID 1000.
Production images `0.2.3` опубликованы для Linux amd64. Опубликованные images собраны для Linux amd64 (см. README комплекта).
Другую архитектуру проверяют отдельно; multi-platform images не обещаны. Другую архитектуру проверяют отдельно; multi-platform images не обещаны.
- Nexus Docker hosted repository `docker-hosted`, доступный через - Nexus Docker hosted repository `docker-hosted`, доступный через
`nexus.personal.ksv741.ru/docker-hosted/`. Docker Bearer Token Realm включён; `nexus.personal.ksv741.ru/docker-hosted/`. Docker Bearer Token Realm включён;
@@ -26,7 +26,10 @@ Development-команды ниже выполняются из workspace с che
используется сервером для загрузки образов. Для публикации нужны используется сервером для загрузки образов. Для публикации нужны
browse/read/add/edit на `docker-hosted`; фактически выданный набор прав browse/read/add/edit на `docker-hosted`; фактически выданный набор прав
настраивается в Nexus. Built-in настраивается в Nexus. Built-in
workflow token не заменяет эту настройку. workflow token не заменяет эту настройку. Отдельной read-only учётной записи
сервера нет: `wealthledger-ci` работает и как CI writer, и как server reader,
поэтому её пароль на сервере даёт право публикации в `docker-hosted`. Это
принятое владельцем решение; разделение ролей — возможное усиление.
- На сервере Caddy уже завершает TLS и передаёт весь домен на - На сервере Caddy уже завершает TLS и передаёт весь домен на
`127.0.0.1:8080` (или выбранный frontend port). Отдельного `/api` upstream нет. `127.0.0.1:8080` (или выбранный frontend port). Отдельного `/api` upstream нет.
DNS, TLS, firewall и provisioning Caddy выполняются вне этого runbook. DNS, TLS, firewall и provisioning Caddy выполняются вне этого runbook.
@@ -81,7 +84,8 @@ Workflow отказывается перезаписывать существу
Выберите опубликованные version tags, выполните pull и сравните OCI revision Выберите опубликованные version tags, выполните pull и сравните OCI revision
с release commit. Выполните smoke с disposable data/config до первого server с release commit. Выполните smoke с disposable data/config до первого server
rollout. В `release.env` комплекта хранится пара полных image references, например rollout. В `release.env` комплекта хранится пара полных image references, например
`nexus.personal.ksv741.ru/docker-hosted/wealthledger/frontend:0.2.3`. Сохраните versions/revisions `nexus.personal.ksv741.ru/docker-hosted/wealthledger/frontend:1.1.0` и
`.../backend:2.1.0`. Сохраните versions/revisions
в deployment record. Release tags не должны переназначаться другим images. в deployment record. Release tags не должны переназначаться другим images.
## Перенос существующих images из Gitea ## Перенос существующих images из Gitea
@@ -91,7 +95,9 @@ rollout. В `release.env` комплекта хранится пара полн
`REGISTRY_USERNAME`/`REGISTRY_TOKEN` сохраните для отката старого workflow. `REGISTRY_USERNAME`/`REGISTRY_TOKEN` сохраните для отката старого workflow.
Пароли вводятся интерактивно или через `--password-stdin`, не через аргументы. Пароли вводятся интерактивно или через `--password-stdin`, не через аргументы.
Скопируйте каждый опубликованный release без пересборки. Например, для `0.2.0` Прежние images лежат в [Gitea packages](https://git.personal.ksv741.ru/WealthLedger/-/packages)
(`git.personal.ksv741.ru/wealthledger/{frontend,backend}`); новые публикуются
только в Nexus. Скопируйте каждый опубликованный release без пересборки. Например, для `0.2.0`
с установленным Skopeo и доступом чтения Gitea/записи Nexus: с установленным Skopeo и доступом чтения Gitea/записи Nexus:
```bash ```bash
@@ -114,7 +120,9 @@ artifact повторно не публикуйте; несовпадение т
После копирования сравните digests через `skopeo inspect --raw` и SHA-256, После копирования сравните digests через `skopeo inspect --raw` и SHA-256,
выполните `docker pull` обоих images пользователем `wealthledger-ci` на сервере приложения, выполните `docker pull` обоих images пользователем `wealthledger-ci` на сервере приложения,
проверьте OCI revision и container smoke на disposable data. проверьте OCI revision и container smoke на disposable data.
Только после этого меняйте production image references и запускайте обычную Серверные шаги (login, pull, smoke) в репозитории не подтверждены и
выполняются оператором. Только после них меняйте
production image references и запускайте обычную
последовательность обновления ниже. Старые Gitea packages и references сохраните: последовательность обновления ниже. Старые Gitea packages и references сохраните:
откат registry возвращает прежние адреса тех же artifacts, не восстанавливает откат registry возвращает прежние адреса тех же artifacts, не восстанавливает
SQLite и не меняет encryption keys. Не переносите Git release tags и не SQLite и не меняет encryption keys. Не переносите Git release tags и не