3 Min Read

Deploy Laravel Dengan Laravel Deployer

iman-sugirman Iman Sugirman

Ada beberapa cara men deploy aplikasi laravel ke server, dengan cara git, manual, menggunakan app hosting, dan untuk menggunakan automatic deployment biasanya akan sangat memudahkan anda dalam memanage project.

Keuntungan Menggunakan Automatic Deploy

Ketika ada perubahan, anda tidak perlu edit di server langsung karena itu resikonya besar. Apalagi perubahannya itu banyak, pasti akan banyak waktu untuk mengecek ulang kodenya. Namun dengan adanya automatic deployment anda akan sangat mudah ketika di project yang anda kerjakan bisa di edit di lokal, dan menggunakan command line yang simple.

Dengan begitu code anda bisa teratur, perubahan pun tetap bisa anda track dengan git dengan mengecek perubahannya.

Menginstall Package Laravel Deployer

Gunakan package dari lorisleiva agar anda bisa lebih mudah untuk mendeploy aplikasi laravel anda. Silahkan anda cek githubnya di Laravel Deployer

composer require deployer/deployer:^7.0

Copy/paste file deploy.php atau deploy.yml sample nya seperti ini jika anda menggunakan deploy.yml

import:
  - recipe/laravel.php
  - contrib/php-fpm.php
  - contrib/npm.php

config:
  application: 'mylaravelapp'
  repository: 'git@github.com:lorisleiva/mylaravelapp.git'
  php_fpm_version: 8.0

hosts:
  prod:
    remote_user: loris
    hostname: mylaravelapp.com
    deploy_path: '~/{{application}}'

tasks:
  deploy:
    - deploy:prepare
    - deploy:vendors
    - artisan:storage:link
    - artisan:view:cache
    - artisan:config:cache
    - artisan:migrate
    - npm:install
    - npm:run:prod
    - deploy:publish
    - php-fpm:reload
  npm:run:prod:
    script:
      - 'cd {{release_or_current_path}} && npm run prod'

after:
  deploy:failed: deploy:unlock

Edit beberapa bagian dan sesuaikan dengan server anda :

config:
  application: 'aplikasilaravelanda'

Ubah application dengan nama Aplikasi Laravel anda.

config:
  repository: 'git@github.com:lorisleiva/mylaravelapp.git'
  php_fpm_version: 8.0

Ubah repository dengan repo aplikasi laravel anda. dan tentukan versi php yang anda gunakan.

Ubah juga bagian ini :

hosts:
  prod:
    remote_user: loris
    hostname: mylaravelapp.com
    deploy_path: '~/{{application}}'

Jika anda ingin langsung mendeploy ke production bisa langsung isi bagian prod dengan server anda. Atau anda bisa juga menggunakan 2 kriteria yang ingin anda gunakan seperti ini :

hosts:
  stagging:
    remote_user: loris
    hostname: stagging.aplikasi.com
    deploy_path: '~/{{application}}'
  production:
    remote_user: loris
    hostname: aplikasi.com
    deploy_path: '~/{{application}}'

Ubah bagian remote_user dengan user di server anda,

Saran untuk anda ketika anda ingin menggunakan ini, gunakan user yang selain root contoh user yang sering digunakan menggunakan deployer

Bagian hostname bisa anda isi dengan endpoint domain server anda. contohnya aplikasi.com dan bagian deploy_path adalah direktori tempat aplikasi anda di simpan.

Dibagian Task anda bisa menggunakan beberapa command untuk command setelah aplikasi anda di deploy ke server :

tasks:
  deploy:
    - deploy:prepare
    - deploy:vendors
    - artisan:storage:link
    - artisan:view:cache
    - artisan:config:cache
    - artisan:migrate
    - npm:install
    - npm:run:prod
    - deploy:publish
    - php-fpm:reload

Beberapa opsi jika anda sudah melakukan npm run prod di local sebaiknya tidak memerlukan command npm install lagi. biasanya saya compile di local dan hanya menggunakan seperti ini :

tasks:
  deploy:
    - deploy:prepare
    - deploy:vendors
    - artisan:storage:link
    - artisan:view:cache
    - artisan:config:cache
    - artisan:migrate
    - deploy:publish

Karena saya tidak akan mereload juga untuk php-fpm dan sekarang saatnya untuk melakukan deploying ke server.

Gunakan terminal / cmd anda di project direktori :

dep deploy

Dan akan di proses oleh package tersebut, jika anda ingin login ke SSH anda hanya tinggal mengetik :

dep ssh

Copy file .env anda yang sebelumnya sudah anda setting dan tulis ulang di .env.example sehingga anda akan mudah mengaturnya di server nanti, masukan perintah di server anda :

cp .env.example && php artisan key:generate

Ubah .env anda di server dengan variable database dan lainnya yang sudah anda buat sebelumnya.

Demikian tutorial cara Deploy Laravel Dengan Laravel Deployer semoga bermanfaat untuk anda semua happy coding...