Khoerodin Developer, writer, and maker |

Developer, writer, and maker

Deploy Laravel Ke Heroku

Heroku merupakan layanan cloud computing bertype PaaS (Platform as a Service). Bagi para web developer lumayan lah versi gratisnya kalau hanya untuk sekedar demo aplikasi/website yang sedang dibangun.

Laravel with Heroku

Berikut environment yang saya pakai ketika membuat tulisan ini:

  1. Ubuntu 16.04 64-bit
  2. PHP 7.0.8
  3. Composer 1.3.1
  4. Git 2.7.4
  5. Laravel 5.3.*

Sebelum dimulai, pastikan Anda telah memahami:

  1. Composser
  2. Cara install Laravel, konfigurasi .env variables dan migrasi database
  3. Git
  4. Punya akun Heroku

Siap? Ayo kita mulai…

Buat project Laravel seperti biasa

$ laravel new herovel
...
$ cd herovel

Initialize Git

$ git init
$ git add .
$ git commit -m "initial commit laravel to heroku"

Membuat Procfile

$ echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
$ git add .
$ git commit -m "procfile for heroku"

Create Heroku Apps

$ heroku create

Install Database Addons

// Jika menggunakan PostgreSQL
$ heroku addons:create heroku-postgresql:hobby-dev

// Ambil informasi koneksi
$ heroku config:get DATABASE_URL

// Maka akan muncul URL database dengan format:
// postgres://username:password@host:port/database_name
// Jika menggunakan MySQL
$ heroku addons:create cleardb:ignite

// Ambil informasi koneksi
$ heroku config:get CLEARDB_DATABASE_URL

// Maka akan muncul URL database dengan format:
// mysql://username:password@host/database_name?reconnect=true

Set ENV variables

Set .env variables sesuai kebutuhan Anda:

// DB_CONNECTION ganti sesuai dengan yang Anda pakai
// DB_HOST, DB_PORT, DB_DATABASE,
// DB_USERNAME dan DB_PASSWORD
// diambil dari URL database yang didapatkan ketika install database addons
// APP_LOG= errorlog : disarankan Heroku agar logging tidak ke laravel storage
// tapi ke Heroku
// Heroku juga merekomendasikan Trusting the Load Balancer :
// https://devcenter.heroku.com/articles/getting-started-with-laravel#trusting-the-load-balancer

$ heroku config:set \
APP_ENV=production \
APP_KEY=$(php artisan --no-ansi key:generate --show) \
APP_DEBUG=false \
APP_LOG=errorlog \
DB_CONNECTION=pgsql \
DB_HOST=host \
DB_PORT=port \
DB_DATABASE=database_name \
DB_USERNAME=username \
DB_PASSWORD=password

Push to Heroku and Migrate

$ git push heroku master
$ heroku run php artisan migrate

Open Apps

$ heroku open

Otomatis browser akan membuka aplikasi Heroku, Tadaaaaa…… Laravel sudah di Heroku :smiley: :smiley: :smiley:

Mudah-mudahan bisa segera menyusul tutorial Docker dan Dokku