3.1 KiB
3.1 KiB
CLAUDE.md — sag24-website
Специфика проекта. Общие правила — в E:\Projects\CLAUDE.md.
Деплой
# 1. Локально: commit + push
git add <файлы> && git commit -m "..." && git push
# 2. На сервере: pull + build
ssh -i ~/.ssh/id_ed25519_hhivp striker@str-u-01.striker.su 'cat <<XEOF | sudo -S bash
Gh_lpx2018!
cd /opt/www/sag24.ru/repo && git pull && npm run deploy
XEOF'
.gitпринадлежит root →git pullтребует sudonpm run deploy=next build(→../public_html) +indexnow.mjs
Singularity
Проект: САГ P-a41aa057-5401-4ae5-843c-439381fdd7f2
Стек
- Next.js 15, TypeScript, App Router, static export
- Tailwind CSS v3 — конфиг
tailwind.config.js(НЕ.ts!) - i18n через
[lang]сегмент:/ru/...,/en/... - Контент:
src/locales/ru.ts,src/locales/en.ts
Структура страниц
/ru/ → Главная
/ru/uslugi/ → Каталог + /[slug]/ (8 услуг)
/ru/about/ → О компании
/ru/clients/ → Клиенты
/ru/partners/ → Партнёры
/ru/faq/ → FAQ
/ru/kontakty/ → Контакты
SEO
- BreadcrumbList JSON-LD на всех страницах —
src/lib/breadcrumbs.ts - generateMetadata на каждой странице с canonical + hreflang
- После деплоя IndexNow отправляется автоматически
Ограничения
- Static export — API routes не работают; форма идёт на
/api/contact.php(PHP) trailingSlash: true— все URL заканчиваются на/- Turnstile SITE_KEY:
0x4AAAAAACrQS-dAb7E9RGPQ
Контактная форма
Архитектура
- Frontend:
src/app/[lang]/kontakty/page.tsx— поля: имя*, компания, email, телефон, сообщение* + Turnstile widget - Backend:
public/api/contact.php→ деплоится вpublic_html/api/contact.php - Email: HTML-формат,
noreply@sag24.ru→info@sag24.ruчерез mx.hhivp.com:587 (raw fsockopen SMTP) - Telegram: бот
vg_contact_bot, чат-5230603582, через CF Workerhttps://tg-relay.it-resheniya-2018.workers.dev/bot - Защита: rate limit 5 req/min (temp files), Turnstile обязательный, htmlspecialchars()
Секреты (НЕ в git!)
Файл: /opt/www/sag24.ru/contact-config.php (вне вебрута, права 640 www-data)
<?php
$BOT_TOKEN = '...';
$CHAT_ID = '-5230603582';
$TURNSTILE_SECRET = '0x4AAAAAACrQSySNBa2C2FWQq2ty1_UyLhc';
$smtp_pass = '...';
При пересоздании сервера — воссоздать этот файл вручную через SSH.
Изменения
2026-03-21: Секреты в include-файл, HTML email
- Хардкоженные секреты вынесены в
/opt/www/sag24.ru/contact-config.php - Email переведён на HTML формат (text/html)