Files
pitstopavto-su-v2/CLAUDE.md
Dmitry Gusev ed27dcfc14
Some checks failed
deploy / deploy (push) Failing after 14s
feat: скаффолд Astro 5 SSG (главная + /privacy + consent gate)
- Главная: hero, адрес Люблинская 100 (Аквапарк ФЭНТАЗИ), 4 кликабельных tel:, карта Яндекса
- /privacy: политика 152-ФЗ + ConsentRevoke (отозвать/сбросить)
- Аналитика перенесена 1:1 с WP: Яндекс.Метрика 47169531 (Webvisor) + GA4 GT-WRF7ZZ8
- Скрипты в type=text/plain, активируются после согласия (pit-consent в localStorage+cookie)
- robots.txt с явным Allow для GPTBot/ClaudeBot/PerplexityBot/Google-Extended/CCBot
- llms.txt + ai.txt (spawning.ai стандарт)
- IndexNow ключ 901a779d62ca4702ad810c863b45e1f7
- JSON-LD AutoPartsStore с адресом и 4 телефонами
- nginx:1.29-alpine runtime, контейнер на :4147
- Gitea Actions deploy.yml + Trivy scan + IndexNow ping
2026-05-22 04:31:55 +03:00

106 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# pitstopavto.su — v2 (Astro)
Сайт-визитка магазина автозапчастей «ПитСтоп». Редизайн с WordPress на статический Astro 5.
**Прод:** https://pitstopavto.su
**Репо:** `git.striker.su/striker/pitstopavto-su-v2`
**Хост:** `web.hhivp.com` (45.10.53.206 / 45.10.53.242)
**Контейнер:** `pitstopavto-su-v2` на `127.0.0.1:4147` (nginx:alpine + Astro SSG)
**Cutover:** запланирован после согласования дизайна. Старый WP — `pitstopavto-su:4142`.
## Стек
- **Astro 5** SSG, две страницы: `/` и `/privacy/`
- **nginx:1.29-alpine** в runtime-контейнере
- **IBM Plex Sans** (через `@fontsource/ibm-plex-sans`)
- **@astrojs/sitemap** — `sitemap-index.xml` автоматически
## Структура
```
src/
├── components/
│ ├── Analytics.astro Яндекс.Метрика (47169531 с Webvisor) + GA4 (GT-WRF7ZZ8) в type=text/plain
│ ├── CookieConsent.astro 152-ФЗ-баннер, ключ pit-consent в localStorage+cookie
│ ├── ConsentRevoke.astro на /privacy/ — отозвать/сбросить выбор
│ └── Footer.astro
├── layouts/Base.astro <html>+meta+JSON-LD (AutoPartsStore)+Analytics+Footer+CookieConsent
├── pages/
│ ├── index.astro hero / адрес / телефоны / карта Яндекса
│ └── privacy.astro политика конфиденциальности 152-ФЗ
├── styles/global.css тёмный/янтарный (#f5b400) индустриальный стиль
└── consts.ts SITE_*, ADDRESS, PHONES, GEO, ANALYTICS, OPERATOR
public/
├── 901a779d62ca4702ad810c863b45e1f7.txt IndexNow key
├── ai.txt spawning.ai (Train/Cite/Quote: yes)
├── favicon.svg
├── llms.txt
└── robots.txt явные Allow для GPTBot/ClaudeBot/PerplexityBot/Google-Extended/CCBot
scripts/indexnow.js POST sitemap → yandex.com/indexnow + api.indexnow.org
```
## Аналитика (перенесена 1:1 из WP)
- **Яндекс.Метрика № 47169531** с Webvisor (запись сессий)
- **Google Analytics GT-WRF7ZZ8** (gtag)
Скрипты в `Analytics.astro` имеют `type="text/plain" data-cookieconsent="statistics"` и активируются только после клика «Принять» в баннере `CookieConsent.astro`. Согласие хранится в `localStorage` + cookie `pit-consent` (12 мес). На `/privacy/` есть виджет для отзыва/сброса согласия.
## Деплой
### Автоматический (Gitea Actions)
Push в `main``.gitea/workflows/deploy.yml`:
1. SSH на `web.hhivp.com` с ключом из секрета `SSH_DEPLOY_KEY`
2. `git fetch + reset --hard origin/main`
3. `docker compose build && up -d`
4. Trivy scan (warning-only)
5. `curl http://127.0.0.1:4147/` — health check
6. `docker image prune --filter "until=168h"`
7. `npm run indexnow` (ping Яндекса и Bing)
**Требуемые секреты в Gitea** (`/repos/striker/pitstopavto-su-v2/actions/secrets`):
- `SSH_DEPLOY_KEY` — приватный ed25519 ключ `~/.ssh/pitstopavto-v2-deploy`
- `SSH_KNOWN_HOSTS``web.hhivp.com ssh-ed25519 AAAAC3...`
Pubkey деплоя кладётся в `striker@web:~/.ssh/authorized_keys`.
### Вручную
```bash
ssh striker@web.hhivp.com
cd /opt/docker/sites/pitstopavto-su-v2
git pull && docker compose up -d --build
```
## Откат на старый WP
Старый WP-контейнер `pitstopavto-su:4142` + БД `pitstopavto_su` на `db.hhivp.com` сохранены (для отката). Откат за ~30 секунд:
```bash
ssh striker@web.hhivp.com
sudo sed -i 's|127.0.0.1:4147|127.0.0.1:4142|g' /etc/nginx/conf.d/pitstopavto.su
sudo nginx -t && sudo systemctl reload nginx
```
После ~14 дней стабильной работы v2 — старый WP можно удалить (контейнер + БД + образ).
## Локальная разработка
```bash
npm install
npm run dev # http://localhost:4321
npm run build # → dist/ (статика)
npm run preview
```
## IndexNow
Уникальный ключ `901a779d62ca4702ad810c863b45e1f7` в `public/<key>.txt` и в `scripts/indexnow.js`. Запускается из CI после успешного healthcheck.
## История
- **2026-05-22:** инициализация v2 (скаффолд Astro). Старый WP-сайт — одностраничник «Мы переехали» (Люблинская 100, Аквапарк ФЭНТАЗИ, 4 телефона), все остальные пункты меню в WP возвращали 404, 20+ плагинов держались ради одной страницы.