Исправлен push multi-arch релиза; обновлена документация с разделом «Что нового».
This commit is contained in:
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
description: Стиль русских текстов коммитов — свершённый вид
|
||||||
|
alwaysApply: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# Тексты коммитов (русский)
|
||||||
|
|
||||||
|
При подготовке или создании сообщения коммита формулируй его как **уже сделанное**, а не как задачу.
|
||||||
|
|
||||||
|
- Используй свершённый вид / краткое причастие: **Добавлен**, **Исправлен**, **Обновлён**, **Переведён**, **Улучшен**, **Удалён**, **Добавлена**, **Исправлена** и т.п.
|
||||||
|
- Не начинай с инфинитива: ~~Добавить~~, ~~Исправить~~, ~~Обновить~~, ~~Перевести~~.
|
||||||
|
|
||||||
|
Примеры:
|
||||||
|
|
||||||
|
- `Исправлен push multi-arch релиза; обновлена документация.`
|
||||||
|
- `Добавлено копирование текста и двухосевая прокрутка в превью unwrap.`
|
||||||
|
- `Переведён make release на multi-arch сборку через Buildx (amd64/arm64).`
|
||||||
@@ -85,6 +85,7 @@ buildx-setup:
|
|||||||
|
|
||||||
# Multi-arch release: linux/amd64 + linux/arm64 → Docker Hub manifest list.
|
# 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).
|
# 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
|
release: env buildx-setup
|
||||||
@echo "Building $(FULL_IMAGE) [$(RELEASE_PLATFORMS)]"
|
@echo "Building $(FULL_IMAGE) [$(RELEASE_PLATFORMS)]"
|
||||||
@if [ "$(PUSH)" = "1" ]; then \
|
@if [ "$(PUSH)" = "1" ]; then \
|
||||||
@@ -93,20 +94,18 @@ release: env buildx-setup
|
|||||||
--provenance=false \
|
--provenance=false \
|
||||||
--sbom=false \
|
--sbom=false \
|
||||||
-t $(FULL_IMAGE) \
|
-t $(FULL_IMAGE) \
|
||||||
-t $(IMAGE_NAME):$(IMAGE_TAG) \
|
|
||||||
--push \
|
--push \
|
||||||
.; \
|
. \
|
||||||
echo "Pushed $(FULL_IMAGE) (multi-arch)"; \
|
&& echo "Pushed $(FULL_IMAGE) (multi-arch)" \
|
||||||
docker buildx imagetools inspect $(FULL_IMAGE) | sed -n '1,40p'; \
|
&& docker buildx imagetools inspect $(FULL_IMAGE) | sed -n '1,40p'; \
|
||||||
else \
|
else \
|
||||||
docker buildx build \
|
docker buildx build \
|
||||||
--platform $(RELEASE_PLATFORMS) \
|
--platform $(RELEASE_PLATFORMS) \
|
||||||
--provenance=false \
|
--provenance=false \
|
||||||
--sbom=false \
|
--sbom=false \
|
||||||
-t $(FULL_IMAGE) \
|
-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
|
fi
|
||||||
@$(MAKE) helm-package IMAGE_TAG=$(IMAGE_TAG)
|
@$(MAKE) helm-package IMAGE_TAG=$(IMAGE_TAG)
|
||||||
|
|
||||||
|
|||||||
@@ -14,10 +14,23 @@
|
|||||||
- RU / EN, светлая и тёмная тема
|
- RU / EN, светлая и тёмная тема
|
||||||
- CAPTCHA: Cloudflare Turnstile и/или hCaptcha
|
- CAPTCHA: Cloudflare Turnstile и/или hCaptcha
|
||||||
- админка: **статистика**, настройки, audit (пагинация + очистка), danger purge
|
- админка: **статистика**, настройки, 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/<id>#<key>` или токен `wrapped_v1.<id>.<key>`. Ключ шифрования в URL-фрагменте (`#...`) на сервер не уходит.
|
Ссылка для получателя: `/w/<id>#<key>` или токен `wrapped_v1.<id>.<key>`. Ключ шифрования в URL-фрагменте (`#...`) на сервер не уходит.
|
||||||
|
|
||||||
|
## Что нового
|
||||||
|
|
||||||
|
Кратко по недавним доработкам UI, админки и релиза:
|
||||||
|
|
||||||
|
| Область | Что появилось |
|
||||||
|
|---------|----------------|
|
||||||
|
| **Расшифровка** | Прокрутка превью текста по вертикали и горизонтали; кнопка **Копировать** рядом со скачиванием |
|
||||||
|
| **Пароль** | Argon2-проверка *до* выдачи ciphertext; лимит попыток; пустой пароль попытку не тратит; структурированные ошибки в UI |
|
||||||
|
| **Админка** | Стартовая **Статистика** (MinIO, wraps, audit); очистка audit с подтверждением; пагинация журнала |
|
||||||
|
| **Релиз** | `make release` собирает **multi-arch** манифест `linux/amd64` + `linux/arm64` через Buildx и пушит только `inecs/wrapped:<tag>` |
|
||||||
|
|
||||||
|
Подробности — в разделах ниже (безопасность, админка, сборка образа).
|
||||||
|
|
||||||
## Скриншоты
|
## Скриншоты
|
||||||
|
|
||||||
Интерфейс на русском и английском, светлая и тёмная тема.
|
Интерфейс на русском и английском, светлая и тёмная тема.
|
||||||
@@ -384,6 +397,7 @@ JSON Admin API: HTTP Basic (`ADMIN_USERNAME` / `ADMIN_PASSWORD`), тег OpenAPI
|
|||||||
### Docker Hub (`make release`)
|
### Docker Hub (`make release`)
|
||||||
|
|
||||||
Сборка **multi-arch** (`linux/amd64` + `linux/arm64`) через Docker Buildx и push манифеста на Docker Hub.
|
Сборка **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
|
```bash
|
||||||
docker login # пользователь inecs
|
docker login # пользователь inecs
|
||||||
@@ -394,6 +408,7 @@ make release RELEASE_PLATFORMS=linux/arm64 # одна платформа
|
|||||||
```
|
```
|
||||||
|
|
||||||
Нужны Docker Buildx и (для cross-build) QEMU/эмуляция — на Docker Desktop обычно уже есть.
|
Нужны Docker Buildx и (для cross-build) QEMU/эмуляция — на Docker Desktop обычно уже есть.
|
||||||
|
Первый запуск создаёт builder `wrapped-release` (`make buildx-setup` внутри `release`).
|
||||||
|
|
||||||
Эквивалент:
|
Эквивалент:
|
||||||
|
|
||||||
@@ -405,6 +420,7 @@ docker buildx build \
|
|||||||
--push .
|
--push .
|
||||||
```
|
```
|
||||||
|
|
||||||
|
После успешного push Makefile печатает краткий `imagetools inspect` (платформы в манифесте).
|
||||||
Образ при старте: `alembic upgrade head` + uvicorn `:8000`. Healthcheck: `GET /health`.
|
Образ при старте: `alembic upgrade head` + uvicorn `:8000`. Healthcheck: `GET /health`.
|
||||||
|
|
||||||
### Git (`make push`)
|
### Git (`make push`)
|
||||||
@@ -467,7 +483,8 @@ external:
|
|||||||
| `make logs` / `make ps` / `make restart` | Логи, статус, рестарт app |
|
| `make logs` / `make ps` / `make restart` | Логи, статус, рестарт app |
|
||||||
| `make migrate` | `alembic upgrade head` |
|
| `make migrate` | `alembic upgrade head` |
|
||||||
| `make revision m="msg"` | Новая alembic-ревизия |
|
| `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 push` | git add → многострочный commit (Ctrl-D) → push |
|
||||||
| `make helm-lint` / `make helm-package` | Helm |
|
| `make helm-lint` / `make helm-package` | Helm |
|
||||||
|
|
||||||
@@ -479,6 +496,7 @@ external:
|
|||||||
- PostgreSQL 16+
|
- PostgreSQL 16+
|
||||||
- S3-совместимое хранилище (MinIO и т.п.)
|
- S3-совместимое хранилище (MinIO и т.п.)
|
||||||
- Docker Compose v2
|
- Docker Compose v2
|
||||||
|
- для `make release`: Docker Buildx (+ QEMU для cross-build arm64 на amd64 и наоборот)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user