Deployment in itself is a messy task, and it becomes a bit more of hectic if you need to run a bunch of commands every time you deploy.
The one of the best way is to create a deployment script and run it every time you deploy.
create a deploy.sh file in the root of your folder and make it executable. You can use the following commands.
touch deploy.sh sudo chmod +x deploy.sh
# Turn on maintenance mode php artisan down # Pull the latest changes from the git repository git reset --hard git clean -df git pull origin master # Install/update composer dependecies composer install --no-interaction --prefer-dist --optimize-autoloader --no-dev # Run database migrations php artisan migrate --force # Clear caches php artisan cache:clear # Clear expired password reset tokens php artisan auth:clear-resets # Clear and cache routes php artisan route:clear php artisan route:cache # Clear and cache config php artisan config:cache php artisan config:clear php artisan view:clear # Install node modules npm install # Build assets using Laravel Mix npm run prod # Turn off maintenance mode php artisan up
Now every time you need to deploy. just run deploy.sh
Feel free to suggest any modification if you feel so.