Превентивная защита от случайной публикации content/logs, content/data, ghost.*.json (см. инцидент moovg_ru 2026-05-24). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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:
git pull --ff-onlyв/opt/docker/sites/pitstopavto-su-v2docker compose build- Trivy scan (HIGH/CRITICAL, warning-only)
docker compose up -d→ healthcheckhttp://127.0.0.1:4147/- IndexNow ping (Яндекс + Bing)
docker image prune -af --filter "until=168h"
Контейнер pitstopavto-su-v2:4147 за хостовым nginx.
Security
См. 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.
Локальная разработка
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/
Description
Languages
Astro
59.4%
CSS
23%
JavaScript
8.9%
TypeScript
6.1%
Dockerfile
2.6%