- Главная: 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
4.9 KiB
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:
- SSH на
web.hhivp.comс ключом из секретаSSH_DEPLOY_KEY git fetch + reset --hard origin/maindocker compose build && up -d- Trivy scan (warning-only)
curl http://127.0.0.1:4147/— health checkdocker image prune --filter "until=168h"npm run indexnow(ping Яндекса и Bing)
Требуемые секреты в Gitea (/repos/striker/pitstopavto-su-v2/actions/secrets):
SSH_DEPLOY_KEY— приватный ed25519 ключ~/.ssh/pitstopavto-v2-deploySSH_KNOWN_HOSTS—web.hhivp.com ssh-ed25519 AAAAC3...
Pubkey деплоя кладётся в striker@web:~/.ssh/authorized_keys.
Вручную
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 секунд:
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 можно удалить (контейнер + БД + образ).
Локальная разработка
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+ плагинов держались ради одной страницы.