Files

120 lines
3.0 KiB
PHP
Raw Permalink Normal View History

2026-07-03 16:42:22 +03:00
@setup
if (file_exists(__DIR__.'/.env.envoy')) {
foreach (parse_ini_file(__DIR__.'/.env.envoy') as $key => $value) {
putenv("$key=$value");
}
}
$path = getenv('DEPLOY_PATH') ?: '/home/CHANGE_ME/CHANGE_ME_DOMAIN';
$branch = getenv('DEPLOY_BRANCH') ?: 'master';
$compose = "docker compose";
@endsetup
@servers(['web' => getenv('DEPLOY_SSH_HOST') ?: 'CHANGE_ME_SSH_HOST', 'local' => '127.0.0.1'])
{{-- DEPLOY --}}
@macro('deploy')
pull
docker_build
docker_up
migrate
artisan_optimize
restart_workers
stoic_generate_thumbs
done
@endmacro
@task('pull', ['on' => 'web'])
echo ">>> Pulling latest code..."
cd {{ $path }}
git reset --hard
git pull origin {{ $branch }}
@endtask
@task('docker_build', ['on' => 'web'])
echo ">>> Building images..."
cd {{ $path }}
{{ $compose }} build
@endtask
@task('docker_up', ['on' => 'web'])
echo ">>> Recreating containers..."
cd {{ $path }}
{{ $compose }} up -d --remove-orphans
@endtask
@task('migrate', ['on' => 'web'])
echo ">>> Running migrations..."
cd {{ $path }}
{{ $compose }} exec -T app php artisan migrate --force < /dev/null
@endtask
@task('artisan_optimize', ['on' => 'web'])
echo ">>> Optimizing..."
cd {{ $path }}
{{ $compose }} exec -T app php artisan config:cache < /dev/null
{{ $compose }} exec -T app php artisan route:cache < /dev/null
{{-- {{ $compose }} exec -T app php artisan view:cache --}}
{{ $compose }} exec -T app php artisan event:cache < /dev/null
@endtask
@task('restart_workers', ['on' => 'web'])
echo ">>> Restarting queue workers..."
cd {{ $path }}
{{ $compose }} restart queue
@endtask
@task('password_protect', ['on' => 'web'])
echo ">>> Maintenance mode on..."
cd {{ $path }}
{{ $compose }} exec -T app php artisan down --secret="bobobo" < /dev/null
@endtask
@task('done', ['on' => 'web'])
echo ""
echo "✅ Deployment complete!"
echo ""
@endtask
{{-- DOWNLOAD EXPORT --}}
@macro('download')
export
download_export
@endmacro
@task('export', ['on' => 'web'])
echo ">>> Dumping database and files..."
cd {{ $path }}
rm ./storage/app/private/exports/export*
{{ $compose }} exec -T app php artisan boboko:export:cleanup < /dev/null
{{ $compose }} exec -T app php artisan boboko:export < /dev/null
echo ">>> Copying exports to host..."
mkdir -p {{ $path }}/storage/app/private/exports/
{{ $compose }} cp app:/var/www/html/storage/app/private/exports/. {{ $path }}/storage/app/private/exports/
@endtask
@task('download_export', ['on' => 'local'])
echo ">>> Downloading exports..."
mkdir -p ./storage/app/private/exports
scp -r chico:{{ $path }}/storage/app/private/exports/* ./storage/app/private/exports/
@endtask
{{-- STOIC THUMBS --}}
@macro('stoic_thumbs')
stoic_generate_thumbs
@endmacro
@task('stoic_generate_thumbs', ['on' => 'web'])
echo ">>> Generating Stoic thumbnails..."
cd {{ $path }}
{{ $compose }} exec -T stoic /app/entrypoint.sh run generate_thumbs
@endtask