Some checks failed
deploy / deploy (push) Failing after 14s
- Главная: 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
106 lines
4.9 KiB
Markdown
106 lines
4.9 KiB
Markdown
# 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+ плагинов держались ради одной страницы.
|