Контекст
При merge PR #785 (мобильная адаптация лендинга) изменения не доехали до прода: на https://ai-sekretar24.ru/ всё ещё старый styles.css (cache buster ?v=2, лейбл KK), Last-Modified: Wed, 20 May 2026. Пришлось разбираться, почему авто-деплой не сработал.
Что показывают webhooks репо
gh api repos/ShaerWare/AI_Secretary_System/hooks
Два push-хука на сервере:
| Хук |
URL |
Последний last_response |
Назначение (предполож.) |
595336438 |
https://ai-sekretar24.ru/webhook/ |
502 connection_error |
ai-secretary-webhook.service — auto-deploy (/opt/ai-secretary/deploy.sh) |
595620064 |
https://ai-sekretar24.ru/webhooks/github |
200 OK |
modules/admin/router_github_webhook.py — парсит ## NEWS для Telegram-бота и FCM-пушей |
Последние 3 доставки сломанного хука:
2026-05-23T21:38:30 push 502
2026-05-23T21:30:18 push 502 ← наш merge
2026-05-23T21:29:00 push 502
Стабильно 502 на каждый push — сервис либо упал, либо nginx-роут /webhook/ указывает в никуда.
Что нужно сделать
- Поднять
ai-secretary-webhook.service (или его аналог) на сервере. Проверить systemctl status ai-secretary-webhook, логи через journalctl -u ai-secretary-webhook -n 100, и nginx-блок location /webhook/ { proxy_pass ...; }.
- Расширить логику auto-deploy, чтобы она синхронизировала и
site/, а не только admin/dist/. Сейчас лендинг живёт в site/{,en/,kk/} + root assets (styles.css, main.js, favicon.svg, robots.txt, sitemap.xml) и должен попадать в веб-корень nginx (предположительно /var/www/ai-sekretar24-site/ или соседний с /var/www/admin-ai-sekretar24/).
Минимальный набор шагов в скрипте после git pull:
# admin (уже было)
cd /opt/ai-secretary/admin && npm ci && npm run build
rsync -av --delete /opt/ai-secretary/admin/dist/ /var/www/admin-ai-sekretar24/
sed -i "s/ai-admin-v[0-9]*/ai-admin-v\$(date +%s)/" /var/www/admin-ai-sekretar24/sw.js
# site (новое)
rsync -av --delete /opt/ai-secretary/site/ /var/www/<путь-лендинга>/
systemctl restart ai-secretary
- (опционально) Изменения, не затрагивающие
admin/ или site/, могут не запускать build — добавить early-exit по диффу для скорости.
Проверка после починки
После merge тестового PR, который трогает site/:
curl -sI https://ai-sekretar24.ru/styles.css?v=N
# Last-Modified должно стать актуальным
md5sum <(curl -s https://ai-sekretar24.ru/styles.css?v=N)
# должен совпасть с md5 локального site/styles.css
И последняя доставка хука /webhook/ должна быть 200 OK, а не 502.
Воркараунд
До починки лендинг придётся выкатывать вручную:
ssh root@155.212.231.7 'cd /opt/ai-secretary && git pull origin main && rsync -av --delete site/ /var/www/<путь-лендинга>/ && systemctl reload nginx'
Связано
Контекст
При merge PR #785 (мобильная адаптация лендинга) изменения не доехали до прода: на
https://ai-sekretar24.ru/всё ещё старыйstyles.css(cache buster?v=2, лейблKK),Last-Modified: Wed, 20 May 2026. Пришлось разбираться, почему авто-деплой не сработал.Что показывают webhooks репо
Два push-хука на сервере:
last_response595336438https://ai-sekretar24.ru/webhook/ai-secretary-webhook.service— auto-deploy (/opt/ai-secretary/deploy.sh)595620064https://ai-sekretar24.ru/webhooks/github200 OKmodules/admin/router_github_webhook.py— парсит## NEWSдля Telegram-бота и FCM-пушейПоследние 3 доставки сломанного хука:
Стабильно 502 на каждый push — сервис либо упал, либо nginx-роут
/webhook/указывает в никуда.Что нужно сделать
ai-secretary-webhook.service(или его аналог) на сервере. Проверитьsystemctl status ai-secretary-webhook, логи черезjournalctl -u ai-secretary-webhook -n 100, и nginx-блокlocation /webhook/ { proxy_pass ...; }.site/, а не толькоadmin/dist/. Сейчас лендинг живёт вsite/{,en/,kk/}+ root assets (styles.css,main.js,favicon.svg,robots.txt,sitemap.xml) и должен попадать в веб-корень nginx (предположительно/var/www/ai-sekretar24-site/или соседний с/var/www/admin-ai-sekretar24/).Минимальный набор шагов в скрипте после
git pull:admin/илиsite/, могут не запускать build — добавить early-exit по диффу для скорости.Проверка после починки
После merge тестового PR, который трогает
site/:И последняя доставка хука
/webhook/должна быть200 OK, а не502.Воркараунд
До починки лендинг придётся выкатывать вручную:
ssh root@155.212.231.7 'cd /opt/ai-secretary && git pull origin main && rsync -av --delete site/ /var/www/<путь-лендинга>/ && systemctl reload nginx'Связано