7 Commits
Author SHA1 Message Date
nunuchek c1d64f6a79 chore(deploy): адреса серверов из deploy/.env.local, а не из репозитория
DEPLOY_HOST, RELAY_HOST и TELEGRAM_BOT_ID обязательны и читаются из
неотслеживаемого deploy/.env.local (образец — .env.local.example).
2026-10-17 17:53:18 +03:00
nunuchek 88b6e1395e refactor: simplify — мёртвые поля контента, общие хелперы api и тестов, липкая CTA без site в бандле
landing:
- site.ts: убраны неиспользуемые roast, brew, priceDisplay, hero.eyebrow, footer.phone (Footer берёт CONTACT_PHONE)
- form.ts: убраны FORM_TEXT.title/lead, CTAS, CtaPreset
- StickyCta получает тексты пропсами от layout: клиентский чанк больше не тащит все тексты страницы
- LeadForm/useLeadForm: без неиспользуемой подмены sendLead и className; leadPrefill без счётчика seq
- Stamp без мёртвого tone; убраны data-interest, data-hot, класс lead-form (ничем не читались)
- одно LEAD_FIELDS на sendLead и leadFormModel; регэксп typo вынесен из вызова; дубль фона body

api:
- changedFields и Version общие для leads и outbox; countLeads и leadStamps без копий SQL
- errorMessage в system.ts вместо четырёх копий; take() для ожидающих подтверждений
- backup: один Intl.DateTimeFormat на модуль, без невызываемых параметров timeZone/hour
- без мёртвых LOOPBACK '::ffff:127.0.0.1', client.call, Pick<BackupCommands> со всеми ключами
- testing.ts: validLead, addLead, count, leadIds вместо копий в тестах

deploy.sh: deployed_field и цикл по REPOS вместо повторов имён
2026-10-17 17:31:11 +03:00
nunuchek b662e89058 fix(landing): sharp в образе через NODE_PATH; итерация критика 3 — переносы
Next 16 грузит sharp обычным require и NEXT_SHARP_PATH не читает: без sharp
/_next/image отдавал исходный JPEG. Критик 3 (9/10): точка-разделитель
нот и «·» в скобке недели не висят в начале/конце строки, имя и фамилия
латиницей не разрываются.
2026-10-17 17:13:36 +03:00
nunuchek 66d69c1245 feat: ретранслятор Bot API на домашнем сервере и TELEGRAM_API_BASE
С VPS api.telegram.org недоступен. deploy/tg-relay: nginx на адресе
Tailscale домашнего сервера, пропускает только запросы нашего бота из
tailnet, без логов доступа (токен в URL). api: базовый URL Bot API из
TELEGRAM_API_BASE; сетевые сбои polling пишутся в лог раз в 10 минут.
2026-10-17 16:56:52 +03:00
nunuchek 5f31b03203 fix(deploy): кросс-сборка — JS на машине сборки, нативные модули под целевую платформу
Под QEMU next build падает с segfault (SWC). Сборка идёт на $BUILDPLATFORM,
sharp ставится отдельной стадией под целевую платформу (NEXT_SHARP_PATH),
у better-sqlite3 остаётся prebuilt целевой архитектуры.
2026-10-17 16:14:43 +03:00
nunuchek 1accf9341b chore(deploy): фиксированная подсеть и TRUSTED_PROXIES для X-Real-IP 2026-10-17 15:48:45 +03:00
nunuchek 79ab146b1d chore(deploy): Docker-образы, compose, deploy.sh, setup-nginx.sh 2026-10-17 15:48:19 +03:00