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.
Berikut environment yang saya pakai ketika membuat tulisan ini:
- Ubuntu 16.04 64-bit
- PHP 7.0.8
- Composer 1.3.1
- Git 2.7.4
- Laravel 5.3.*
Sebelum dimulai, pastikan Anda telah memahami:
- Composser
- Cara install Laravel, konfigurasi .env variables dan migrasi database
- Git
- 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