From b4f648bedce1696a0fa1c432c405ed9761f1828b Mon Sep 17 00:00:00 2001 From: Sergey Antropoff Date: Thu, 23 Jul 2026 13:15:31 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20push=20multi-arch=20=D1=80=D0=B5=D0=BB=D0=B8?= =?UTF-8?q?=D0=B7=D0=B0;=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D1=81=20=D1=80=D0=B0=D0=B7=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D0=BE=D0=BC=20=C2=AB=D0=A7=D1=82=D0=BE=20=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE=C2=BB.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cursor/rules/commit-messages-ru.mdc | 17 +++++++++++++++++ Makefile | 13 ++++++------- README.md | 22 ++++++++++++++++++++-- 3 files changed, 43 insertions(+), 9 deletions(-) create mode 100644 .cursor/rules/commit-messages-ru.mdc diff --git a/.cursor/rules/commit-messages-ru.mdc b/.cursor/rules/commit-messages-ru.mdc new file mode 100644 index 0000000..bab6f38 --- /dev/null +++ b/.cursor/rules/commit-messages-ru.mdc @@ -0,0 +1,17 @@ +--- +description: Стиль русских текстов коммитов — свершённый вид +alwaysApply: true +--- + +# Тексты коммитов (русский) + +При подготовке или создании сообщения коммита формулируй его как **уже сделанное**, а не как задачу. + +- Используй свершённый вид / краткое причастие: **Добавлен**, **Исправлен**, **Обновлён**, **Переведён**, **Улучшен**, **Удалён**, **Добавлена**, **Исправлена** и т.п. +- Не начинай с инфинитива: ~~Добавить~~, ~~Исправить~~, ~~Обновить~~, ~~Перевести~~. + +Примеры: + +- `Исправлен push multi-arch релиза; обновлена документация.` +- `Добавлено копирование текста и двухосевая прокрутка в превью unwrap.` +- `Переведён make release на multi-arch сборку через Buildx (amd64/arm64).` diff --git a/Makefile b/Makefile index 5faa0fb..d0b6bac 100644 --- a/Makefile +++ b/Makefile @@ -85,6 +85,7 @@ buildx-setup: # Multi-arch release: linux/amd64 + linux/arm64 → Docker Hub manifest list. # PUSH=1 (default): buildx --push. PUSH=0: build only (cache; cannot --load multi-arch). +# Only tag $(FULL_IMAGE) — a bare "$(IMAGE_NAME):tag" would push to docker.io/library/... release: env buildx-setup @echo "Building $(FULL_IMAGE) [$(RELEASE_PLATFORMS)]" @if [ "$(PUSH)" = "1" ]; then \ @@ -93,20 +94,18 @@ release: env buildx-setup --provenance=false \ --sbom=false \ -t $(FULL_IMAGE) \ - -t $(IMAGE_NAME):$(IMAGE_TAG) \ --push \ - .; \ - echo "Pushed $(FULL_IMAGE) (multi-arch)"; \ - docker buildx imagetools inspect $(FULL_IMAGE) | sed -n '1,40p'; \ + . \ + && echo "Pushed $(FULL_IMAGE) (multi-arch)" \ + && docker buildx imagetools inspect $(FULL_IMAGE) | sed -n '1,40p'; \ else \ docker buildx build \ --platform $(RELEASE_PLATFORMS) \ --provenance=false \ --sbom=false \ -t $(FULL_IMAGE) \ - -t $(IMAGE_NAME):$(IMAGE_TAG) \ - .; \ - echo "PUSH=0 — multi-arch built into buildx cache (not pushed, not loaded locally)"; \ + . \ + && echo "PUSH=0 — multi-arch built into buildx cache (not pushed, not loaded locally)"; \ fi @$(MAKE) helm-package IMAGE_TAG=$(IMAGE_TAG) diff --git a/README.md b/README.md index 5e1d8b4..78497ee 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,23 @@ - RU / EN, светлая и тёмная тема - CAPTCHA: Cloudflare Turnstile и/или hCaptcha - админка: **статистика**, настройки, audit (пагинация + очистка), danger purge -- Docker Compose и Helm; образ на Docker Hub: [`inecs/wrapped`](https://hub.docker.com/r/inecs/wrapped) +- Docker Compose и Helm; multi-arch образ (`amd64`/`arm64`) на Docker Hub: [`inecs/wrapped`](https://hub.docker.com/r/inecs/wrapped) Ссылка для получателя: `/w/#` или токен `wrapped_v1..`. Ключ шифрования в URL-фрагменте (`#...`) на сервер не уходит. +## Что нового + +Кратко по недавним доработкам UI, админки и релиза: + +| Область | Что появилось | +|---------|----------------| +| **Расшифровка** | Прокрутка превью текста по вертикали и горизонтали; кнопка **Копировать** рядом со скачиванием | +| **Пароль** | Argon2-проверка *до* выдачи ciphertext; лимит попыток; пустой пароль попытку не тратит; структурированные ошибки в UI | +| **Админка** | Стартовая **Статистика** (MinIO, wraps, audit); очистка audit с подтверждением; пагинация журнала | +| **Релиз** | `make release` собирает **multi-arch** манифест `linux/amd64` + `linux/arm64` через Buildx и пушит только `inecs/wrapped:` | + +Подробности — в разделах ниже (безопасность, админка, сборка образа). + ## Скриншоты Интерфейс на русском и английском, светлая и тёмная тема. @@ -384,6 +397,7 @@ JSON Admin API: HTTP Basic (`ADMIN_USERNAME` / `ADMIN_PASSWORD`), тег OpenAPI ### Docker Hub (`make release`) Сборка **multi-arch** (`linux/amd64` + `linux/arm64`) через Docker Buildx и push манифеста на Docker Hub. +Пушится только полный тег `$(RELEASE_REGISTRY)/$(IMAGE_NAME):$(IMAGE_TAG)` (по умолчанию `inecs/wrapped:…`) — короткий тег вроде `wrapped:0.1.0` при `--push` ушёл бы в `docker.io/library/…` и получил бы отказ в авторизации. ```bash docker login # пользователь inecs @@ -394,6 +408,7 @@ make release RELEASE_PLATFORMS=linux/arm64 # одна платформа ``` Нужны Docker Buildx и (для cross-build) QEMU/эмуляция — на Docker Desktop обычно уже есть. +Первый запуск создаёт builder `wrapped-release` (`make buildx-setup` внутри `release`). Эквивалент: @@ -405,6 +420,7 @@ docker buildx build \ --push . ``` +После успешного push Makefile печатает краткий `imagetools inspect` (платформы в манифесте). Образ при старте: `alembic upgrade head` + uvicorn `:8000`. Healthcheck: `GET /health`. ### Git (`make push`) @@ -467,7 +483,8 @@ external: | `make logs` / `make ps` / `make restart` | Логи, статус, рестарт app | | `make migrate` | `alembic upgrade head` | | `make revision m="msg"` | Новая alembic-ревизия | -| `make release` | Multi-arch образ (amd64+arm64) на Docker Hub (+ Helm package) | +| `make release` | Multi-arch образ (amd64+arm64) → Docker Hub (`inecs/wrapped`) + Helm package | +| `make buildx-setup` | Создать/выбрать Buildx builder `wrapped-release` (вызывается из `release`) | | `make push` | git add → многострочный commit (Ctrl-D) → push | | `make helm-lint` / `make helm-package` | Helm | @@ -479,6 +496,7 @@ external: - PostgreSQL 16+ - S3-совместимое хранилище (MinIO и т.п.) - Docker Compose v2 +- для `make release`: Docker Buildx (+ QEMU для cross-build arm64 на amd64 и наоборот) ---