Skip to content

Instantly share code, notes, and snippets.

@drbyte
Forked from rap2hpoutre/laravel-forge-deploy.sh
Created February 19, 2017 20:23
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save drbyte/7b54699778f5cd0441070c457718da48 to your computer and use it in GitHub Desktop.
Save drbyte/7b54699778f5cd0441070c457718da48 to your computer and use it in GitHub Desktop.
Laravel Forge deploy script without downtime
# stop script on error signal
set -e
# remove old deployment folders
if [ -d "/home/forge/deploy" ]; then
rm -R /home/forge/deploy
fi
if [ -d "/home/forge/backup" ]; then
rm -R /home/forge/backup
fi
cp -R /home/forge/default /home/forge/deploy
# Update
cd /home/forge/deploy
git pull origin master
composer install
php artisan migrate --force
# Switch (downtime for microseconds)
mv /home/forge/default /home/forge/backup
mv /home/forge/deploy /home/forge/default
# Reset opcache
echo "<?php opcache_reset(); echo 'opcache reset' . PHP_EOL; ?>" > /home/forge/default/public/opcachereset.php
curl http://localhost/opcachereset.php
rm /home/forge/default/public/opcachereset.php
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment