#!/usr/bin/env bash # Лидерра тест-сервер — применить обновление (server-side половина). # ПЕРЕД запуском: с dev-машины залить новый код (git archive app db) + сборку # (app/public/build) через scp. Затем на сервере: bash /var/www/liderra/redeploy.sh set -euo pipefail cd /var/www/liderra/app # vendor/ принадлежит www-data, а скрипт бежит от ubuntu → composer install от # ubuntu падает "autoload_classmap.php: Permission denied" и (из-за set -e) рвёт # деплой ДО кэшей/рестарта → прод 500. Инцидент 23.06.2026. Поэтому composer # запускаем от root (COMPOSER_ALLOW_SUPERUSER) и возвращаем владельца vendor www-data. sudo env COMPOSER_ALLOW_SUPERUSER=1 composer install --optimize-autoloader --no-interaction --no-scripts --ignore-platform-req=ext-redis sudo chown -R www-data:www-data vendor # NB: миграции crm_migrator-owned таблиц (напр. saas_transactions) штатной .env-ролью # НЕ применяются ("must be owner") — применять ВРУЧНУЮ под `sudo -u postgres` ДО запуска # скрипта + INSERT в migrations, тогда строка ниже = no-op. Иначе set -e порвёт деплой. php artisan migrate --force sudo -u www-data php artisan optimize chmod -R a+rX public/build sudo chown -R ubuntu:www-data storage bootstrap/cache sudo chmod -R 775 storage bootstrap/cache sudo systemctl restart php8.3-fpm liderra-queue echo "Redeploy done at $(date -u +%FT%TZ)"