Laravel, framework PHP yang populer, menawarkan cara yang efisien dan elegan untuk membangun aplikasi web. Sementara Heroku, platform cloud PaaS (Platform as a Service), menyediakan infrastruktur yang memungkinkan Anda menjalankan aplikasi Anda tanpa harus mengelola server. Menggabungkan keduanya adalah pilihan yang sangat baik untuk developer yang ingin fokus pada pengembangan aplikasi, bukan pada konfigurasi server. Artikel ini akan memandu Anda melalui proses deploy Laravel di Heroku: panduan langkah demi langkah, mulai dari persiapan hingga aplikasi Anda dapat diakses secara online.
1. Persiapan Aplikasi Laravel Anda untuk Deployment Heroku (Konfigurasi dan Penyesuaian)
Sebelum Anda melangkah lebih jauh, penting untuk memastikan aplikasi Laravel Anda siap untuk deployment. Beberapa penyesuaian dan konfigurasi perlu dilakukan agar aplikasi Anda berjalan lancar di lingkungan Heroku.
-
Memastikan Versi PHP yang Kompatibel: Heroku mendukung berbagai versi PHP. Pastikan versi PHP yang digunakan di aplikasi lokal Anda sama atau kompatibel dengan versi yang tersedia di Heroku. Anda dapat mengecek versi PHP yang tersedia di Heroku di dokumentasi resminya. Ini penting untuk menghindari masalah kompatibilitas runtime.
-
Konfigurasi
.env
untuk Heroku: Berbeda dengan lingkungan lokal, Anda tidak boleh menyimpan informasi sensitif seperti kunci API atau kredensial database langsung di dalam file.env
di Heroku. Heroku menyediakan mekanisme konfigurasi melalui environment variables. Nanti, kita akan membahas cara mengatur environment variables ini. -
Memastikan Ketergantungan (Dependencies) Terkelola dengan Composer: Composer adalah alat yang digunakan untuk mengelola dependencies di aplikasi Laravel Anda. Pastikan file
composer.json
dancomposer.lock
Anda sudah ter-update dengan dependencies yang benar. Saat Anda men-deploy aplikasi ke Heroku, Heroku akan menggunakan Composer untuk menginstal semua dependencies yang dibutuhkan. -
Mengatur
APP_KEY
:APP_KEY
adalah kunci aplikasi yang digunakan Laravel untuk enkripsi dan dekripsi data. Jika Anda belum mengaturAPP_KEY
, buatlah dengan perintahphp artisan key:generate
. Setelah itu, pastikan untuk menyimpannya sebagai environment variable di Heroku. -
Menghapus Cache Konfigurasi dan View (Jika Ada): Pastikan Anda telah menghapus cache konfigurasi dan view sebelum melakukan deployment. Gunakan perintah
php artisan config:clear
danphp artisan view:clear
. -
Memastikan Database Migration Berjalan: Aplikasi Anda mungkin memerlukan migrasi database untuk mengatur struktur tabel. Pastikan migrasi Anda sudah siap dan dapat dijalankan secara otomatis saat deployment.
2. Membuat Akun Heroku dan Aplikasi Baru (Langkah Awal Deployment)
Langkah selanjutnya adalah membuat akun Heroku jika Anda belum memilikinya dan membuat aplikasi baru.
-
Pendaftaran Akun Heroku: Kunjungi situs web Heroku (https://www.heroku.com/) dan buat akun gratis. Akun gratis memungkinkan Anda men-deploy aplikasi web sederhana dengan sumber daya yang terbatas.
-
Membuat Aplikasi Baru di Heroku: Setelah berhasil login, Anda akan diarahkan ke dashboard Heroku. Klik tombol “New” dan pilih “Create new app”.
-
Menentukan Nama Aplikasi dan Region: Berikan nama yang unik untuk aplikasi Anda dan pilih region server yang paling dekat dengan target pengguna Anda. Misalnya, Anda bisa memilih “Europe” jika sebagian besar pengguna Anda berada di Eropa. Nama aplikasi akan menjadi bagian dari URL aplikasi Anda (misalnya,
nama-aplikasi.herokuapp.com
). -
Memilih Metode Deployment: Heroku menawarkan beberapa metode deployment, termasuk menggunakan Heroku CLI, GitHub, atau Docker. Dalam panduan ini, kita akan fokus pada penggunaan Heroku CLI.
3. Menginstal dan Mengkonfigurasi Heroku CLI (Command Line Interface)
Heroku CLI adalah alat baris perintah yang memungkinkan Anda berinteraksi dengan platform Heroku dari terminal Anda.
-
Mengunduh dan Menginstal Heroku CLI: Unduh installer Heroku CLI yang sesuai dengan sistem operasi Anda dari situs web Heroku. Ikuti petunjuk instalasi yang disediakan.
-
Login ke Akun Heroku Melalui CLI: Buka terminal Anda dan ketik perintah
heroku login
. Ini akan membuka browser web dan meminta Anda untuk login ke akun Heroku Anda. Setelah login berhasil, Anda dapat menutup browser dan kembali ke terminal. -
Verifikasi Instalasi Heroku CLI: Ketik perintah
heroku --version
untuk memastikan Heroku CLI terinstal dengan benar dan menampilkan versi yang sesuai.
4. Menginisialisasi Git Repository dan Menghubungkan ke Heroku (Persiapan Versi Kontrol)
Sebelum Anda dapat men-deploy aplikasi Anda ke Heroku, Anda perlu menginisialisasi Git repository dan menghubungkannya ke aplikasi Heroku yang Anda buat.
-
Inisialisasi Git Repository di Direktori Aplikasi Laravel: Buka terminal Anda dan arahkan ke direktori aplikasi Laravel Anda. Ketik perintah
git init
untuk menginisialisasi Git repository baru. -
Menambahkan dan Melakukan Commit Perubahan: Tambahkan semua file aplikasi Anda ke Git repository dengan perintah
git add .
. Kemudian, commit perubahan dengan perintahgit commit -m "Initial commit"
. -
Menghubungkan Git Repository ke Aplikasi Heroku: Gunakan perintah
heroku git:remote -a nama-aplikasi
, di mananama-aplikasi
adalah nama aplikasi yang Anda buat di Heroku. Perintah ini akan menambahkan remote repository Heroku ke Git repository Anda. -
Membuat
.gitignore
File: Buat file.gitignore
di direktori aplikasi Anda untuk mencegah file-file yang tidak perlu (seperti file vendor, file log, dan file.env
) di-commit ke Git repository. Contoh isi file.gitignore
:/vendor /node_modules .env storage/logs/* bootstrap/cache/*
5. Mengatur Environment Variables di Heroku (Konfigurasi Database dan Lainnya)
Seperti yang disebutkan sebelumnya, Anda tidak boleh menyimpan informasi sensitif di dalam file .env
saat men-deploy aplikasi ke Heroku. Sebagai gantinya, Anda harus menggunakan environment variables.
-
Mengatur Environment Variables Melalui Heroku CLI: Gunakan perintah
heroku config:set NAMA_VARIABEL=nilai
untuk mengatur environment variables. Misalnya, untuk mengaturAPP_KEY
, gunakan perintahheroku config:set APP_KEY=kunci_aplikasi_anda
. -
Contoh Konfigurasi Database: Jika aplikasi Anda menggunakan database MySQL, Anda perlu mengatur environment variables berikut:
heroku config:set DB_CONNECTION=mysql heroku config:set DB_HOST=host_database_anda heroku config:set DB_PORT=port_database_anda heroku config:set DB_DATABASE=nama_database_anda heroku config:set DB_USERNAME=username_database_anda heroku config:set DB_PASSWORD=password_database_anda
Penting: Anda perlu menyediakan database instance. Heroku menawarkan add-on database seperti ClearDB (untuk MySQL) atau Heroku Postgres. Setelah Anda menyediakan add-on database, Heroku akan secara otomatis mengatur environment variables yang sesuai. Anda bisa mendapatkan nilai-nilai ini dengan perintah
heroku config
. -
Mengatur
APP_DEBUG
menjadifalse
: Penting untuk mengaturAPP_DEBUG
menjadifalse
di lingkungan produksi untuk mencegah informasi sensitif ditampilkan kepada pengguna. Gunakan perintahheroku config:set APP_DEBUG=false
.
6. Membuat Procfile
untuk Mengarahkan Heroku (Definisi Proses Aplikasi)
Procfile
adalah file teks sederhana yang menentukan perintah yang akan dijalankan oleh Heroku saat aplikasi Anda dimulai.
-
Membuat File
Procfile
di Root Direktori Aplikasi: Buat file bernamaProcfile
(tanpa ekstensi) di root direktori aplikasi Laravel Anda. -
Mendefinisikan Proses Web: Tambahkan baris berikut ke dalam file
Procfile
:web: vendor/bin/heroku-php-apache2 public/
Baris ini memberitahu Heroku untuk menjalankan server web Apache menggunakan PHP dan melayani file-file dari direktori
public/
. Jika aplikasi Anda memerlukan proses lain (seperti queue worker), Anda dapat mendefinisikannya diProcfile
juga.
7. Men-deploy Aplikasi Laravel ke Heroku (Push ke Heroku)
Setelah semua persiapan selesai, Anda siap untuk men-deploy aplikasi Anda ke Heroku.
-
Push Perubahan ke Heroku: Gunakan perintah
git push heroku master
untuk men-deploy aplikasi Anda ke Heroku. Ini akan mengunggah kode aplikasi Anda ke Heroku dan memulai proses deployment. -
Memantau Proses Deployment: Heroku akan menampilkan log deployment di terminal Anda. Perhatikan log ini untuk melihat apakah ada error atau peringatan.
-
Menjalankan Migrasi Database: Setelah deployment selesai, Anda perlu menjalankan migrasi database. Gunakan perintah
heroku run php artisan migrate
. -
Memastikan Aplikasi Berjalan: Buka aplikasi Anda di browser web menggunakan URL yang diberikan oleh Heroku (misalnya,
nama-aplikasi.herokuapp.com
). Periksa apakah aplikasi Anda berjalan dengan benar dan tidak ada error.
8. Mengatasi Masalah Umum Deployment Heroku (Troubleshooting)
Deployment ke Heroku terkadang tidak berjalan sesuai rencana. Berikut adalah beberapa masalah umum dan solusinya:
-
Aplikasi Tidak Berjalan: Periksa log aplikasi menggunakan perintah
heroku logs --tail
untuk melihat error yang terjadi. Kemungkinan penyebabnya adalah kesalahan konfigurasi, dependencies yang hilang, atau kesalahan kode. -
Masalah Database: Pastikan environment variables database Anda sudah benar dan database instance Anda berjalan dengan benar. Coba jalankan migrasi database secara manual menggunakan perintah
heroku run php artisan migrate
. -
Error “Application Error”: Error ini biasanya menunjukkan masalah yang lebih umum. Periksa log aplikasi untuk mendapatkan informasi lebih lanjut.
-
Masalah Routing: Pastikan file
Procfile
Anda sudah benar dan mengarahkan ke direktoripublic/
yang benar. -
Timeouts: Jika aplikasi Anda membutuhkan waktu yang lama untuk merespon, Anda mungkin mengalami timeouts. Coba optimalkan kode Anda atau pertimbangkan untuk menggunakan dyno yang lebih besar (dengan lebih banyak sumber daya).
-
Cache: Pastikan Anda telah membersihkan cache konfigurasi dan view sebelum melakukan deployment.
9. Konfigurasi Domain Kustom untuk Aplikasi Heroku (Branding dan Profesionalisme)
Meskipun URL nama-aplikasi.herokuapp.com
berfungsi, Anda mungkin ingin menggunakan domain kustom untuk aplikasi Anda agar terlihat lebih profesional.
-
Membeli Domain (Jika Belum Punya): Beli domain dari registrar domain seperti Namecheap, GoDaddy, atau Google Domains.
-
Menambahkan Domain Kustom ke Heroku: Buka dashboard Heroku Anda dan pilih aplikasi Anda. Klik tab “Settings” dan gulir ke bawah ke bagian “Domains”. Klik “Add domain” dan masukkan domain Anda.
-
Mengatur DNS Records: Heroku akan memberikan Anda DNS records (CNAME atau A records) yang perlu Anda atur di registrar domain Anda. Ikuti petunjuk yang diberikan oleh Heroku dan registrar domain Anda untuk mengkonfigurasi DNS records dengan benar.
-
Memverifikasi Domain: Setelah Anda mengatur DNS records, Heroku akan secara otomatis memverifikasi domain Anda. Proses ini mungkin membutuhkan waktu beberapa jam.
10. Mempertahankan dan Memonitor Aplikasi Laravel di Heroku (Pemantauan dan Pembaruan)
Setelah aplikasi Anda berjalan di Heroku, penting untuk memantau kinerjanya dan melakukan pemeliharaan rutin.
-
Memantau Log Aplikasi: Gunakan perintah
heroku logs --tail
untuk memantau log aplikasi secara real-time. Ini akan membantu Anda mengidentifikasi masalah dan error dengan cepat. -
Menggunakan Heroku Add-ons untuk Pemantauan: Heroku menawarkan berbagai add-ons untuk pemantauan aplikasi, seperti New Relic atau Papertrail. Add-ons ini memberikan visibilitas yang lebih baik ke dalam kinerja aplikasi Anda.
-
Melakukan Pembaruan Aplikasi: Ketika Anda membuat perubahan pada aplikasi Anda, Anda dapat men-deploy perubahan tersebut ke Heroku dengan menggunakan perintah
git push heroku master
. -
Backup Database Secara Teratur: Pastikan Anda melakukan backup database Anda secara teratur untuk mencegah kehilangan data.
-
Memperbarui Versi PHP dan Dependencies: Ikuti panduan Heroku untuk memperbarui versi PHP dan dependencies aplikasi Anda secara berkala.
11. Menggunakan Buildpacks Kustom untuk Kebutuhan Spesifik (Fleksibilitas Tambahan)
Buildpacks adalah skrip yang digunakan oleh Heroku untuk mengkompilasi kode aplikasi Anda. Heroku menyediakan buildpacks standar untuk berbagai bahasa pemrograman, termasuk PHP. Namun, Anda juga dapat menggunakan buildpacks kustom jika Anda memiliki kebutuhan spesifik.
-
Mencari Buildpacks Kustom: Cari buildpacks kustom yang sesuai dengan kebutuhan Anda di GitHub atau sumber lainnya.
-
Menggunakan Buildpacks Kustom di Heroku: Gunakan perintah
heroku buildpacks:set url_buildpack_anda
untuk mengatur buildpack kustom untuk aplikasi Anda. -
Contoh Penggunaan Buildpacks Kustom: Misalnya, Anda dapat menggunakan buildpack kustom untuk menginstal ekstensi PHP tertentu yang tidak termasuk dalam buildpack standar.
12. Kesimpulan: Sukses Deploy Laravel di Heroku
Dengan mengikuti panduan deploy Laravel di Heroku: panduan langkah demi langkah ini, Anda seharusnya sekarang dapat men-deploy aplikasi Laravel Anda ke Heroku dengan sukses. Ingatlah untuk selalu memantau aplikasi Anda, melakukan pemeliharaan rutin, dan mengikuti praktik terbaik untuk keamanan dan kinerja. Selamat mengembangkan!