Files
shop10/CHANGELOG.md
T

145 lines
7.0 KiB
Markdown

# Changelog
## [1.2.0] — 2026-05-16
Улучшения каталога, уведомлений и админки.
### Каталог и UX
- **Сортировка:** по названию, цене (↑/↓), дате добавления
- **Фильтры:** только товары со скидкой; показ позиций «нет в наличии»
- **Бейдж «Осталось N»** при остатке ≤ 5
- **Недавно просмотренные** товары на главной (сессия, до 8 позиций)
- **Meta description** на странице товара
### Заказы и почта
- **Письмо после оформления** заказа (SMTP или лог в консоль)
- Вкладка **«Заказы»** в личном кабинете
### SEO и безопасность
- **`/robots.txt`** и **`/sitemap.xml`**
- Заголовки **X-Content-Type-Options**, **X-Frame-Options**, **Referrer-Policy**
- **Rate limit** на вход и регистрацию (429 при превышении)
### Админка
- **Фильтр заказов** по статусу
- **Экспорт заказов в CSV**
[1.2.0]: https://git.evilfox.cc/test/shop10/releases/tag/v1.2.0
## [1.0.1] — 2026-05-17
Патч после **v1.0.0**: капча, доработка обновления из админки.
### Безопасность
- **Капча:** Google reCAPTCHA или Cloudflare Turnstile на входе, регистрации и сбросе пароля
- **Яндекс SmartCaptcha заблокирован** — сообщение администратора на формах; попытки отправки отклоняются
### Админка и сервер
- **Обновление с Git** (`/admin/system`): исправлены `safe.directory`, проверка через `git ls-remote` без прав на `.git`, pull от владельца репозитория
- Подсказки по `SHOP_GIT_USER`, sudoers в интерфейсе
[1.0.1]: https://git.evilfox.cc/test/shop10/releases/tag/v1.0.1
## [1.0.0] — 2026-05-17
Первый мажорный релиз после **v0.20.0**: безопасность, лояльность, акции на товары, удобная установка и обновление с сервера.
### Безопасность и вход
- **Passkey (WebAuthn):** привязка в профиле, вход без пароля
- **Один администратор:** только email из `ADMIN_EMAIL`; остальные регистрируются как `customer`
- Документация только под **PostgreSQL 17** (SQLite убран из описаний)
### Магазин и маркетинг
- **Промокоды:** процент или фиксированная скидка, мин. сумма, лимит использований, таймер до конца акции в корзине
- **Баллы лояльности:** списание при оплате, начисление с заказа
- **Цена со скидкой на товар:** `sale_price_cents`, дата окончания акции; в каталоге — зачёркнутая старая цена и бейдж
- **Уведомление о поступлении:** подписка при нулевом остатке, email при пополнении склада
### Админ-панель
- Товары: цена, цена со скидкой, срок акции, остаток
- Промокоды: создание и редактирование
- **Обновление с Git:** `/admin/system``git pull`, `npm install`, перезапуск `shop` (с подтверждением)
- Улучшенный UI: SVG-иконки, наглядные цены со скидкой
### Установка и эксплуатация
- Интерактивный **`scripts/install.sh`** (Docker или Ubuntu, админ, БД, SMTP)
- **`SHOP_ROOT`**, **`git-sync.sh`**, **`server-update.sh`** — обновление без detached HEAD
- **`install-shop-service.sh`**, **`wait-postgres.sh`**, освобождение порта 3000
- Wiki: [Server-Operations](wiki/Server-Operations.md), универсальное развёртывание
### Исправления
- Пути `include` иконок в EJS (Internal Server Error после UI-обновления)
- Быстрое развёртывание Ubuntu: PGDG PostgreSQL 17, корректный каталог репозитория
[1.0.0]: https://git.evilfox.cc/test/shop10/releases/tag/v1.0.0
## [0.20.0] — 2026-05-17
### Роли и администрирование
- Роли `customer` и `admin`, админ-панель `/admin`
- Администратор по умолчанию: `admin@site.com` (создаётся при старте)
- Управление заказами, пользователями, товарами, бронированиями
### Личный кабинет
- Просмотр профиля, смена имени, email (с подтверждением пароля), пароля
### Cookies
- Баннер согласия; без принятия недоступны вход, регистрация, кабинет, оформление заказа
- Политика: `/cookies/policy`
### Бронирование и почта
- Бронирование товара на 48 часов, уведомление на email
- Сброс пароля: `/forgot-password`, ссылка в письме (nodemailer + SMTP)
- Переменные: `SITE_URL`, `SMTP_*`
### Документация
- Wiki: установка Docker и без Docker
- Скрипт `scripts/publish-gitea-release.sh`
[0.20.0]: https://git.evilfox.cc/test/shop10/releases/tag/v0.20.0
## [0.10.0] — 2026-05-17
Первый стабильный релиз с PostgreSQL 17. Два способа развёртывания: **Docker Compose** и **без Docker** (Ubuntu + systemd).
### Возможности
- Каталог, корзина, регистрация, заказы
- PostgreSQL 17 (схема, сессии в БД)
- Caddy: HTTPS и reverse proxy (на хосте или в Docker)
- Health-check: `GET /health`
### Docker Compose
- `docker compose up -d --build` — app + postgres
- `docker compose --profile proxy` — опционально Caddy
- `docker-compose.dev.yml` — только БД для локальной разработки
### Без Docker (production)
- Ubuntu: Node.js 20, PostgreSQL 17, systemd (`deploy/shop.service`)
- Скрипты: `setup-postgres-ubuntu.sh`, `fix-db-connection.sh`, `server-update.sh`, `diagnose-502.sh`
### Исправления
- `seed.js` больше не вызывает `process.exit` при старте сервера (502 от Caddy)
- Ожидание PostgreSQL в `shop.service` перед запуском Node
[0.10.0]: https://git.evilfox.cc/test/shop10/releases/tag/v0.10.0