Cara Deploy Project Laravel ke Heroku

Heroku adalah salah satu platform cloud yang mengusung Platform as a service (Paas),atau bisa juga disebut sebagai platform berbasis layanan. Paas adalah salah satu jenis dari layanan cloud computing yang menyediakan platform dimana user bisa mendevelop, membuild, mendeploy, menjalankan, dan mengatur aplikasi di dalam platform tersebut.

Cara yang akan kita lakukan untuk mendeploy atau menghosting adalah melalui github yang terhubung ke Heroku.

Pertama-tama, push project laravel ke github, tidak masalah jika anda ingin mengaturnya ke private.

Setelah itu buka heroku, lakukan registrasi jika anda belum memiliki akun.

Bila sudah sampai ke dalam dashboard Heroku, klik "New", pilih "Create new app"

Masukkan nama app yang anda inginkan sesuai dengan project anda. Pilih negara server, untuk saat ini hanya ada dua pilihan: United States atau Europe. Akhiri dengan klik tombol "Create app".

Kemudian anda akan disodorkan dengan pilihan metode deploy, apakah ingin menggunakan:

  1. Heroku Git (Use Heroku CLI)
  2. GitHub (Connect to GitHub)
  3. Container Registry (Use Heroku CLI)

Seperti yang sudah dituliskan di atas, kita akan menggunakan cara deploy dengan menggunakan GitHub, jadi anda pilih GitHub jika anda ingin mengikuti cara kami.

Setelah anda memilih GitHub, akan tampil nama akun GitHub anda beserta dengan inputan pencarian repositori. Ketikkan nama repo project laravel anda yang telah anda push sebelumnya, atau dengan menekan tombol search untuk menampilkan semua daftar repo anda. Setelah menemuknnya, klik "connect".

Tunggu sebentar, kemudian aktifkan "Enable Automatic Deploys".

Selanjutnya pergi ke menu "Settings", klik "Reveal Config Vars". Di sini kita akan memasukkan APP_KEY Laravel, yang bisa anda salin dari file .env yang sudah ada di project laravel anda.

Masukkan isian kolom KEY dengan "APP_KEY", lalu VALUE-nya anda pastekan dari isian APP_KEY yang anda salin dari file .env project Laravel anda.

Selanjutnya, kita pergi ke folder project kita dan melalui command prompt, ketik:

echo web: vendor/bin/heroku-php-apache2 public/ > Procfile

Kemudian, buka file composer.json, lalu tambahkan "post-install-cmd" pada bagian "scripts".

"scripts": {
"post-autoload-dump": [
    "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
    "@php artisan package:discover --ansi"
],
"post-root-package-install": [
    "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
    "@php artisan key:generate --ansi"
],
"post-install-cmd": [
    "php artisan clear-compiled",
    "chmod -R 777 public/"
]
}

Setelah itu, buka kembali Heroku anda lalu pergi kembali ke menu "deploy", klik "Deploy Branch". Tunggu sejenak hingga proses selesai.

Untuk melihat hasilnya, klik "view" setelah deploy selesai atau klik "Open app".

Bila tampilannya berantakan karena style atau script js yang tidak terpanggil, dan pada console inspect element menamilkan error:

Mixed Content: The page at 'https://example.herokuapp.com/' was loaded over HTTPS, but requested an insecure script 'http://example.herokuapp.com/js/app.js'. This request has been blocked; the content must be served over HTTPS.

Maka untuk mengatasinya ganti method asset() dengan secure_asset() pada pemanggilan style dan script js-nya.

Semoga bermanfaat.