Files
portal/deploy/README.md
T
Дмитрий d568bf84eb chore(deploy): sync redeploy.sh from prod into repo
Канон рецепта server-side деплоя, который раньше жил только в /var/www/liderra/redeploy.sh.

- deploy/redeploy.sh — копия 1:1 текущей версии с боевого (квирк 107 фикс встроен:
  sudo -u www-data php artisan optimize).
- deploy/README.md — workflow деплоя (git archive + scp + bash redeploy.sh)
  и пояснение, что боевой остаётся source of truth для исполнения,
  репо — source of truth для рецепта.

При следующей правке скрипта на боевом — синкать обратно (sha-сверка).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 08:02:21 +03:00

1.9 KiB
Raw Blame History

deploy/

Скрипты применения обновлений на боевом сервере liderra.ru.

redeploy.sh

Server-side половина деплоя. На боевом лежит в /var/www/liderra/redeploy.sh (вне репозитория Laravel). Здесь — каноническая копия для версионирования и аудита.

Workflow деплоя:

  1. Локально — собрать архив кода + Vite-сборку:
    git archive HEAD app/ db/ | gzip > /tmp/deploy-code.tgz
    tar czf /tmp/deploy-build.tgz -C app/public build/
    
  2. scp обоих архивов на сервер.
  3. На сервере — распаковать в /var/www/liderra/app/, выставить владельца www-data:www-data, запустить bash /var/www/liderra/redeploy.sh.

NB: redeploy.sh НЕ делает git pull — он рассчитан на то, что код уже залит scp. Если запустить без предварительного scp — будет no-op (composer install / migrate / optimize / restart на той же кодовой базе).

Квирк 107 (фикс встроен): строка sudo -u www-data php artisan optimize обязательна. Без неё optimize запускался от ubuntubootstrap/cache/config.php с владельцем ubuntu → php-fpm (под www-data) не мог прочитать → 503 на всём портале. Инцидент 24.05.2026 03:46 UTC, портал лежал 18 минут.

Расхождение с боевым: если правится этот файл — синкать на боевой (scp + проверка хеша). Боевой = source of truth для исполнения, репо = source of truth для рецепта.