Как правильно деплоить проект?
Если не брать в рассчет современные подходы на основе докера, то самый универсальный способ - использовать ansible и его модуль docs.ansible.com/ansible/latest/deploy_helper_modu...
Если погуглить 'laravel deploy ansible', то вы найдете множество статей и репозиториев на гитхабе, из которых можно почерпнуть всю необходимую информацию. 
p.s. И никогда не используйте баш скрипты для подобных задач.
Предлагаю воспользоваться готовыми решениями типа gitlab ci. Копать в сторону агентов Gitlab Runner и написание ci сценариев. . Там есть возможность deploy,  а также разворачивать кластер  kubernetis. Gitlab бесплатный сервер с широким набор инструментов, есть возможность его развернуть на собственном сервере на линуксе. Ставиться одной командой.