980b31df06
Co-authored-by: Cursor <cursoragent@cursor.com>
145 lines
7.0 KiB
Markdown
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
|