START: 2026-09-25 20:25:48 +---------------------------------------------+ [TASK]: Set vars [CMD]: export HOME=/home/srhwebcloster STDOUT: STDERR: EXIT: 0 [CMD]: SCRIPTS_PATH=/home/srhwebcloster/scripts STDOUT: STDERR: EXIT: 0 [CMD]: COMPOSER_PATH=$SCRIPTS_PATH/composer STDOUT: STDERR: EXIT: 0 [CMD]: PHP_BIN=/usr/local/bin/php STDOUT: STDERR: EXIT: 0 [CMD]: REPO_PATH=/home/srhwebcloster/repositories/deshi-dht-backend STDOUT: STDERR: EXIT: 0 [CMD]: DOTFILES_PATH=/home/srhwebcloster/repositories/deshi-dht-backend-dotfiles STDOUT: STDERR: EXIT: 0 [CMD]: PROJECT_PATH=/home/srhwebcloster/api.srh.webcloster.com STDOUT: STDERR: EXIT: 0 [CMD]: SHARED_PATH=/home/srhwebcloster/shared STDOUT: STDERR: EXIT: 0 [CMD]: DEPLOY_BRANCH=main STDOUT: STDERR: EXIT: 0 +---------------------------------------------+ [TASK]: Check composer [CMD]: if [ -f "$COMPOSER_PATH" ]; then echo "Composer already exists in this directory." else echo "Downloading Composer..." $PHP_BIN -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" $PHP_BIN -r "if (hash_file('sha384', 'composer-setup.php') === 'c8b085408188070d5f52bcfe4ecfbee5f727afa458b2573b8eaaf77b3419b0bf2768dc67c86944da1544f06fa544fd47') { echo 'Installer verified'.PHP_EOL; } else { echo 'Installer corrupt'.PHP_EOL; unlink('composer-setup.php'); exit(1); }" $PHP_BIN composer-setup.php $PHP_BIN -r "unlink('composer-setup.php');" mv composer.phar $COMPOSER_PATH echo "Composer downloaded as $COMPOSER_PATH" fi STDOUT: Composer already exists in this directory. STDERR: EXIT: 0 +---------------------------------------------+ [TASK]: Check init repo [CMD]: if [ -d "$REPO_PATH/.git" ]; then echo "Repo ready." else git clone \ "$DEPLOY_REPO_URL" \ "$REPO_PATH"_tmp rm -rf "$REPO_PATH" mv "$REPO_PATH"_tmp "$REPO_PATH" fi STDOUT: Repo ready. STDERR: EXIT: 0 +---------------------------------------------+ [TASK]: Check repo [CMD]: cd $REPO_PATH STDOUT: STDERR: EXIT: 0 [CMD]: git fetch --all --prune STDOUT: Fetching origin STDERR: From https://gitlab.com/webcloster-internal-development/deshi-dht-backend fe4223f..df526ee main -> origin/main 0d6abe1..c03d0a7 development -> origin/development * [new branch] feat/features-additions -> origin/feat/features-additions * [new tag] v2.55.0 -> v2.55.0 EXIT: 0 [CMD]: git checkout $DEPLOY_BRANCH STDOUT: Fetching origin Your branch is behind 'origin/main' by 10 commits, and can be fast-forwarded. (use "git pull" to update your local branch) STDERR: From https://gitlab.com/webcloster-internal-development/deshi-dht-backend fe4223f..df526ee main -> origin/main 0d6abe1..c03d0a7 development -> origin/development * [new branch] feat/features-additions -> origin/feat/features-additions * [new tag] v2.55.0 -> v2.55.0 Already on 'main' EXIT: 0 [CMD]: git reset --hard origin/$DEPLOY_BRANCH STDOUT: Fetching origin Your branch is behind 'origin/main' by 10 commits, and can be fast-forwarded. (use "git pull" to update your local branch) HEAD is now at df526ee Merge branch 'development' into 'main' STDERR: From https://gitlab.com/webcloster-internal-development/deshi-dht-backend fe4223f..df526ee main -> origin/main 0d6abe1..c03d0a7 development -> origin/development * [new branch] feat/features-additions -> origin/feat/features-additions * [new tag] v2.55.0 -> v2.55.0 Already on 'main' EXIT: 0 +---------------------------------------------+ [TASK]: Prepare shared state [CMD]: mkdir -p "$SHARED_PATH/storage" "$SHARED_PATH/logs" if [ -d "$PROJECT_PATH/storage" ] && [ ! -L "$PROJECT_PATH/storage" ]; then echo "Rescuing uploads left in the project directory..." cp -a "$PROJECT_PATH/storage/." "$SHARED_PATH/storage/" || true fi if [ -d "$PROJECT_PATH/logs" ] && [ ! -L "$PROJECT_PATH/logs" ]; then echo "Rescuing logs left in the project directory..." cp -a "$PROJECT_PATH/logs/." "$SHARED_PATH/logs/" || true fi chmod 775 "$SHARED_PATH/storage" "$SHARED_PATH/logs" STDOUT: STDERR: EXIT: 0 +---------------------------------------------+ [TASK]: Remove old content [CMD]: cd $PROJECT_PATH STDOUT: STDERR: EXIT: 0 [CMD]: rm -rf ./* ./.??* STDOUT: STDERR: EXIT: 0 +---------------------------------------------+ [TASK]: Copy entire content [CMD]: cd $REPO_PATH STDOUT: STDERR: EXIT: 0 [CMD]: echo "Start copy" STDOUT: Start copy STDERR: EXIT: 0 [CMD]: tar \ --exclude='.git' \ --exclude='.env.*' \ --exclude='./storage' \ --exclude='./logs' \ --exclude='./deploy' \ --exclude='Containerfile' \ --exclude='Dockerfile' \ --exclude='docker-entrypoint.sh' \ --exclude='.gitlab-ci.yml' \ --exclude='.gitignore' \ --exclude='*.md' \ --exclude='container-compose.yml' \ --exclude='*.sql' \ -cf - ./* ./.??* | tar --no-same-permissions -xf - -C "$PROJECT_PATH/" STDOUT: Start copy STDERR: EXIT: 0 +---------------------------------------------+ [TASK]: Change permissions [CMD]: cd $PROJECT_PATH STDOUT: STDERR: EXIT: 0 [CMD]: chmod -R 755 ./ STDOUT: STDERR: EXIT: 0 +---------------------------------------------+ [TASK]: Link persistent directories [CMD]: ln -sfn "$SHARED_PATH/storage" "$PROJECT_PATH/storage" ln -sfn "$SHARED_PATH/logs" "$PROJECT_PATH/logs" ls -ld "$PROJECT_PATH/storage" "$PROJECT_PATH/logs" STDOUT: lrwxrwxrwx 1 srhwebcloster srhwebcloster 31 Sep 25 15:26 /home/srhwebcloster/api.srh.webcloster.com/logs -> /home/srhwebcloster/shared/logs lrwxrwxrwx 1 srhwebcloster srhwebcloster 34 Sep 25 15:26 /home/srhwebcloster/api.srh.webcloster.com/storage -> /home/srhwebcloster/shared/storage STDERR: EXIT: 0 +---------------------------------------------+ [TASK]: Install dependencies [CMD]: cd $PROJECT_PATH STDOUT: STDERR: EXIT: 0 [CMD]: $PHP_BIN $COMPOSER_PATH i --no-dev --optimize-autoloader STDOUT: STDERR: Composer could not detect the root package (slim/slim-skeleton) version, defaulting to '1.0.0'. See https://getcomposer.org/root-version Installing dependencies from lock file Verifying lock file contents can be installed on current platform. Package operations: 61 installs, 0 updates, 0 removals - Downloading masterminds/html5 (2.11.0) - Downloading sabberworm/php-css-parser (v9.5.0) - Downloading dompdf/php-svg-lib (1.0.2) - Downloading dompdf/php-font-lib (1.0.2) - Downloading dompdf/dompdf (v3.1.6) 0/5 [>---------------------------] 0% 4/5 [======================>-----] 80% 5/5 [============================] 100% - Installing aws/aws-crt-php (v1.2.7): Extracting archive - Installing psr/clock (1.0.0): Extracting archive - Installing cakephp/chronos (3.5.0): Extracting archive - Installing psr/simple-cache (3.0.0): Extracting archive - Installing psr/container (2.0.2): Extracting archive - Installing psr/event-dispatcher (1.0.0): Extracting archive - Installing league/container (5.2.0): Extracting archive - Installing cakephp/core (5.3.6): Extracting archive - Installing cakephp/utility (5.3.6): Extracting archive - Installing cakephp/datasource (5.3.6): Extracting archive - Installing masterminds/html5 (2.11.0): Extracting archive - Installing symfony/polyfill-mbstring (v1.38.1): Extracting archive - Installing sabberworm/php-css-parser (v9.5.0): Extracting archive - Installing dompdf/php-svg-lib (1.0.2): Extracting archive - Installing dompdf/php-font-lib (1.0.2): Extracting archive - Installing dompdf/dompdf (v3.1.6): Extracting archive - Installing firebase/php-jwt (v7.0.5): Extracting archive - Installing symfony/polyfill-php80 (v1.37.0): Extracting archive - Installing symfony/deprecation-contracts (v3.7.0): Extracting archive - Installing psr/http-message (2.0): Extracting archive - Installing psr/http-client (1.0.3): Extracting archive - Installing ralouphie/getallheaders (3.0.3): Extracting archive - Installing psr/http-factory (1.1.0): Extracting archive - Installing guzzlehttp/psr7 (2.12.3): Extracting archive - Installing guzzlehttp/promises (2.5.0): Extracting archive - Installing guzzlehttp/guzzle (7.13.2): Extracting archive - Installing league/mime-type-detection (1.16.0): Extracting archive - Installing league/flysystem (3.35.2): Extracting archive - Installing league/flysystem-local (3.31.0): Extracting archive - Installing symfony/polyfill-ctype (v1.37.0): Extracting archive - Installing symfony/filesystem (v7.4.11): Extracting archive - Installing mtdowling/jmespath.php (2.9.2): Extracting archive - Installing aws/aws-sdk-php (3.388.0): Extracting archive - Installing league/flysystem-aws-s3-v3 (3.35.2): Extracting archive - Installing psr/log (3.0.2): Extracting archive - Installing monolog/monolog (2.11.0): Extracting archive - Installing nette/utils (v4.1.4): Extracting archive - Installing nette/mail (v4.1.2): Extracting archive - Installing php-di/invoker (2.3.7): Extracting archive - Installing laravel/serializable-closure (v2.0.13): Extracting archive - Installing php-di/php-di (7.1.1): Extracting archive - Installing predis/predis (v3.5.0): Extracting archive - Installing symfony/polyfill-intl-normalizer (v1.38.0): Extracting archive - Installing symfony/polyfill-intl-grapheme (v1.38.1): Extracting archive - Installing symfony/string (v7.4.13): Extracting archive - Installing symfony/service-contracts (v3.7.0): Extracting archive - Installing symfony/console (v7.4.13): Extracting archive - Installing symfony/config (v7.4.10): Extracting archive - Installing cakephp/database (5.3.6): Extracting archive - Installing robmorgan/phinx (0.16.11): Extracting archive - Installing fig/http-message-util (1.1.5): Extracting archive - Installing slim/psr7 (1.8.0): Extracting archive - Installing psr/http-server-handler (1.0.2): Extracting archive - Installing psr/http-server-middleware (1.0.2): Extracting archive - Installing nikic/fast-route (v1.3.0): Extracting archive - Installing slim/slim (4.15.2): Extracting archive - Installing symfony/process (v7.4.13): Extracting archive - Installing phpoption/phpoption (1.9.5): Extracting archive - Installing graham-campbell/result-type (v1.1.4): Extracting archive - Installing vlucas/phpdotenv (v5.6.3): Extracting archive - Installing vlucas/valitron (v1.4.11): Extracting archive 0/61 [>---------------------------] 0% 10/61 [====>-----------------------] 16% 15/61 [======>---------------------] 24% 19/61 [========>-------------------] 31% 24/61 [===========>----------------] 39% 29/61 [=============>--------------] 47% 33/61 [===============>------------] 54% 38/61 [=================>----------] 62% 41/61 [==================>---------] 67% 46/61 [=====================>------] 75% 47/61 [=====================>------] 77% 51/61 [=======================>----] 83% 55/61 [=========================>--] 90% 56/61 [=========================>--] 91% 60/61 [===========================>] 98% 61/61 [============================] 100% Generating optimized autoload files 26 packages you are using are looking for funding. Use the `composer fund` command to find out more! EXIT: 0 [CMD]: echo "ALL DONE" STDOUT: ALL DONE STDERR: Composer could not detect the root package (slim/slim-skeleton) version, defaulting to '1.0.0'. See https://getcomposer.org/root-version Installing dependencies from lock file Verifying lock file contents can be installed on current platform. Package operations: 61 installs, 0 updates, 0 removals - Downloading masterminds/html5 (2.11.0) - Downloading sabberworm/php-css-parser (v9.5.0) - Downloading dompdf/php-svg-lib (1.0.2) - Downloading dompdf/php-font-lib (1.0.2) - Downloading dompdf/dompdf (v3.1.6) 0/5 [>---------------------------] 0% 4/5 [======================>-----] 80% 5/5 [============================] 100% - Installing aws/aws-crt-php (v1.2.7): Extracting archive - Installing psr/clock (1.0.0): Extracting archive - Installing cakephp/chronos (3.5.0): Extracting archive - Installing psr/simple-cache (3.0.0): Extracting archive - Installing psr/container (2.0.2): Extracting archive - Installing psr/event-dispatcher (1.0.0): Extracting archive - Installing league/container (5.2.0): Extracting archive - Installing cakephp/core (5.3.6): Extracting archive - Installing cakephp/utility (5.3.6): Extracting archive - Installing cakephp/datasource (5.3.6): Extracting archive - Installing masterminds/html5 (2.11.0): Extracting archive - Installing symfony/polyfill-mbstring (v1.38.1): Extracting archive - Installing sabberworm/php-css-parser (v9.5.0): Extracting archive - Installing dompdf/php-svg-lib (1.0.2): Extracting archive - Installing dompdf/php-font-lib (1.0.2): Extracting archive - Installing dompdf/dompdf (v3.1.6): Extracting archive - Installing firebase/php-jwt (v7.0.5): Extracting archive - Installing symfony/polyfill-php80 (v1.37.0): Extracting archive - Installing symfony/deprecation-contracts (v3.7.0): Extracting archive - Installing psr/http-message (2.0): Extracting archive - Installing psr/http-client (1.0.3): Extracting archive - Installing ralouphie/getallheaders (3.0.3): Extracting archive - Installing psr/http-factory (1.1.0): Extracting archive - Installing guzzlehttp/psr7 (2.12.3): Extracting archive - Installing guzzlehttp/promises (2.5.0): Extracting archive - Installing guzzlehttp/guzzle (7.13.2): Extracting archive - Installing league/mime-type-detection (1.16.0): Extracting archive - Installing league/flysystem (3.35.2): Extracting archive - Installing league/flysystem-local (3.31.0): Extracting archive - Installing symfony/polyfill-ctype (v1.37.0): Extracting archive - Installing symfony/filesystem (v7.4.11): Extracting archive - Installing mtdowling/jmespath.php (2.9.2): Extracting archive - Installing aws/aws-sdk-php (3.388.0): Extracting archive - Installing league/flysystem-aws-s3-v3 (3.35.2): Extracting archive - Installing psr/log (3.0.2): Extracting archive - Installing monolog/monolog (2.11.0): Extracting archive - Installing nette/utils (v4.1.4): Extracting archive - Installing nette/mail (v4.1.2): Extracting archive - Installing php-di/invoker (2.3.7): Extracting archive - Installing laravel/serializable-closure (v2.0.13): Extracting archive - Installing php-di/php-di (7.1.1): Extracting archive - Installing predis/predis (v3.5.0): Extracting archive - Installing symfony/polyfill-intl-normalizer (v1.38.0): Extracting archive - Installing symfony/polyfill-intl-grapheme (v1.38.1): Extracting archive - Installing symfony/string (v7.4.13): Extracting archive - Installing symfony/service-contracts (v3.7.0): Extracting archive - Installing symfony/console (v7.4.13): Extracting archive - Installing symfony/config (v7.4.10): Extracting archive - Installing cakephp/database (5.3.6): Extracting archive - Installing robmorgan/phinx (0.16.11): Extracting archive - Installing fig/http-message-util (1.1.5): Extracting archive - Installing slim/psr7 (1.8.0): Extracting archive - Installing psr/http-server-handler (1.0.2): Extracting archive - Installing psr/http-server-middleware (1.0.2): Extracting archive - Installing nikic/fast-route (v1.3.0): Extracting archive - Installing slim/slim (4.15.2): Extracting archive - Installing symfony/process (v7.4.13): Extracting archive - Installing phpoption/phpoption (1.9.5): Extracting archive - Installing graham-campbell/result-type (v1.1.4): Extracting archive - Installing vlucas/phpdotenv (v5.6.3): Extracting archive - Installing vlucas/valitron (v1.4.11): Extracting archive 0/61 [>---------------------------] 0% 10/61 [====>-----------------------] 16% 15/61 [======>---------------------] 24% 19/61 [========>-------------------] 31% 24/61 [===========>----------------] 39% 29/61 [=============>--------------] 47% 33/61 [===============>------------] 54% 38/61 [=================>----------] 62% 41/61 [==================>---------] 67% 46/61 [=====================>------] 75% 47/61 [=====================>------] 77% 51/61 [=======================>----] 83% 55/61 [=========================>--] 90% 56/61 [=========================>--] 91% 60/61 [===========================>] 98% 61/61 [============================] 100% Generating optimized autoload files 26 packages you are using are looking for funding. Use the `composer fund` command to find out more! EXIT: 0 +---------------------------------------------+ [TASK]: Copy the dotfiles [CMD]: cd $DOTFILES_PATH STDOUT: STDERR: EXIT: 0 [CMD]: cp -r ./ $PROJECT_PATH STDOUT: STDERR: EXIT: 0 +---------------------------------------------+ [TASK]: Run master migrations [CMD]: cd $PROJECT_PATH STDOUT: STDERR: EXIT: 0 [CMD]: $PHP_BIN vendor/bin/phinx migrate -c phinx.master.php STDOUT: Phinx by CakePHP - https://phinx.org. 0.16.11 using config file phinx.master.php using config parser php using migration paths - /home/srhwebcloster/api.srh.webcloster.com/database/master_migrations using seed paths - /home/srhwebcloster/api.srh.webcloster.com/database/master_seeds warning no environment specified, defaulting to: master using adapter mysql using database srhwebcloster_master ordering by creation time All Done. Took 0.0240s STDERR: EXIT: 0 +---------------------------------------------+ [TASK]: Run tenant migrations [CMD]: cd $PROJECT_PATH STDOUT: STDERR: EXIT: 0 [CMD]: $PHP_BIN bin/migrate-tenants.php STDOUT: [2026-09-25T20:27:07+00:00] migrating tenant=zapato-real-demo db=srhwebcloster_zapato_real_demo Phinx by CakePHP - https://phinx.org. 0.16.11 using config file phinx.tenant.php using config parser php using migration paths - /home/srhwebcloster/api.srh.webcloster.com/database/migrations using seed paths - /home/srhwebcloster/api.srh.webcloster.com/database/seeds warning no environment specified, defaulting to: tenant using adapter mysql using database srhwebcloster_zapato_real_demo ordering by creation time All Done. Took 0.0614s [2026-09-25T20:27:07+00:00] done migrated=1 errors=0 STDERR: EXIT: 0 +---------------------------------------------+ [TASK]: Seed root super admin [CMD]: cd $PROJECT_PATH STDOUT: STDERR: EXIT: 0 [CMD]: $PHP_BIN vendor/bin/phinx seed:run -c phinx.master.php -s SuperAdminSeed STDOUT: Phinx by CakePHP - https://phinx.org. 0.16.11 using config file phinx.master.php using config parser php using migration paths - /home/srhwebcloster/api.srh.webcloster.com/database/master_migrations using seed paths - /home/srhwebcloster/api.srh.webcloster.com/database/master_seeds warning no environment specified, defaulting to: master using adapter mysql using database srhwebcloster_master == SuperAdminSeed: seeding == SuperAdminSeed: seeded 0.0128s All Done. Took 0.0160s STDERR: EXIT: 0 +---------------------------------------------+ [TASK]: Verify persistent state [CMD]: cd $PROJECT_PATH if [ ! -w "$SHARED_PATH/storage" ]; then echo "FATAL: $SHARED_PATH/storage is not writable." exit 1 fi if [ ! -w "$SHARED_PATH/logs" ]; then echo "FATAL: $SHARED_PATH/logs is not writable." exit 1 fi echo "Persistent state OK." STDOUT: Persistent state OK. STDERR: EXIT: 0 ============================================= END. Duration: 79.06s