# pitstopavto.su Сайт-визитка магазина автозапчастей «ПитСтоп». Редизайн с WordPress на статический **Astro 5**. **Production:** https://pitstopavto.su > **Mirror.** Source-of-truth: `git.striker.su/striker/pitstopavto-su-v2`. Этот репозиторий на GitHub — резервная копия. ## Стек - **Astro 5** SSG — две страницы: `/` и `/privacy/` - **nginx:1.29-alpine** в runtime-контейнере - **IBM Plex Sans** (через `@fontsource/ibm-plex-sans`) - **@astrojs/sitemap** — `sitemap-index.xml` автоматически ## Деплой `git push` → Gitea Actions (`.gitea/workflows/deploy.yml`) → SSH на `web.hhivp.com`: 1. `git pull --ff-only` в `/opt/docker/sites/pitstopavto-su-v2` 2. `docker compose build` 3. **Trivy** scan (HIGH/CRITICAL, warning-only) 4. `docker compose up -d` → healthcheck `http://127.0.0.1:4147/` 5. **IndexNow** ping (Яндекс + Bing) 6. `docker image prune -af --filter "until=168h"` Контейнер `pitstopavto-su-v2:4147` за хостовым nginx. ## Security См. [`SECURITY.md`](SECURITY.md) — Layer A+B+C: - **A** (на push): Trivy + npm audit - **B** (weekly): Nuclei DAST - **C** (на push + MR): Hadolint + GitLeaks + Semgrep ## 152-ФЗ — consent-gated analytics Я.Метрика № `47169531` (с Webvisor) и GA `GT-WRF7ZZ8` подключаются только после клика «Принять» в баннере `src/components/CookieConsent.astro`. ## IndexNow Ключ: `901a779d62ca4702ad810c863b45e1f7` Скрипт: `scripts/indexnow.js` запускается из CI после healthcheck. ## Локальная разработка ```bash npm install npm run dev # → http://localhost:4321 npm run build # → dist/ npm run preview ``` ## История - **2026-05-22:** v2 — Astro 5, миграция с WP-стенда «Мы переехали». - **2026-05-23:** WP-стенд удалён, бэкап `/opt/backup/pitstopavto-pre-removal-*`. ## Контакты - Email: admin@hhivp.com - Site: https://hhivp.com/