Kamu web developer? Kalau local development, kamu biasa pakai apa? Siapa yang masih pakai XAMPP? Di tahun 2020 ini sudah banyak tools untuk local development yang bisa kita gunakan. Mulai dari XAMPP, WAMP, Laragon, atau install php dan mysql sendiri. Tapi ada nggak yang makai docker atau vagrant? Kali ini kita mau coba development pakai Vagrant dari HashiCorp.

Vagrant merupakan tools open source yang digunakan untuk manajemen Virtual Software development environment yang portabel. Maksudnya, kamu bisa membuat environment yang sesuai dengan server production kamu di komputer kamu, dan kalau ada masalah dengan instalasi environment kamu, komputer kamu tidak terpengaruh, karena itu hanya sebuah virtual machine. Jadi Vagrant akan memudahkan kamu dalam memanjemen environment kamu dengan perintah-perintah simpel.

Dengan memanfaatkan teknologi vagrant ini, tim dari Laravel membuat sebuah vagrant box atau konfigurasi environment siap pakai yang sudah lengkap dengan tools atau program yang kamu butuhkan. Berikut penjelasan resmi dari situs Laravel tentang Laravel Homestead.

Laravel Homestead adalah vagrant box resmi yang sudah di paketkan yang menyediakan lingkungan development tanpa perlu menginstal PHP, web server, dan software server lainnya di mesin lokal. Anda tidak perlu lagi khawatir jika anda mengacau sistem operasi anda. Vagrant box itu sekali pakai, jika ada masalah, anda bisa menghapus box nya dan membuatnya kembali dalam hitungan menit.

Laravel Homestead ini bisa berjalan di sistem operasi Windows, Mac, atau linux, dan sudah include Nginx, Apache, PHP, MySQL, PostgresSQL, Node Js, Redis, Memcached, MongoDB, dan program lainnya yang kamu butuhkan untuk development. Yuk kita coba ngoding pake Laravel Homestead ini.

Persiapan

Ada 2 aplikasi yang harus diinstal agar kita bisa memakai Laravel Homestead, yaitu Virtualbox dan Vagrant. Untuk instalasinya bisa disesuaikan dengan OS masing-masing ya. Kalau kamu pengguna Manjaro, kamu bisa install dengan perintah ini.

sudo pacman -S virtualbox vagrant
Install virtualbox dan vagrant.

Instalasi Laravel Homestead

Pertama sekali, kita harus menambahkan box homestead dulu ke komputer kita.

vagrant box add laravel/homestead

Terus tambahkan plugin ini.

vagrant plugin install micromachine vagrant-hostmanager vagrant-vbguest

Untuk instalasi homestead, ada 2 cara yaitu: per project atau secara global.

Instalasi Global

Di instalasi global, kamu cuma perlu 1 instance dari homestead dan itu akan digunakan di seluruh project kamu.

Pertama Clone dulu repository homestead nya.

git clone https://github.com/laravel/homestead.git ~/Homestead
Ini akan menginstall Homestead di direktori home kamu.

Kemudian kita pindah ke branch release nya.

cd ~/Homestead

git checkout release

Selanjutnya kamu init deh Homestead nya.

// Mac / Linux...
bash init.sh

// Windows...
init.bat

Sekarang, kamu edit deh Homestead.yaml nya sesuai dengan project kamu. Untuk dokumentasinya silahkan kunjungi https://laravel.com/docs/7.x/homestead.

Ini contoh Homestead.yaml punyaku.

Kemudian di direktori ~/Homestead kamu jalankan deh perintah vagrant nya.

vagrant up

Tunggu sampai selesai, dan kamu sudah bisa akses yang kamu daftarkan!

Instalasi Per-Project

Untuk instalasi per-project, kamu masuk ke direktori project kamu dan jalankan perintah composer ini.

composer require laravel/homestead --dev

Dan jalankan box nya dengan perintah:

//MacOs Linux
php vendor/bin/homestead make

//Windows
vendor\\bin\\homestead make

//Jalankan box nya
vagrant up

Selamat. Kamu berhasil menggunakan vagrant!

Untuk masuk ke dalam virtual machine, kamu bisa jalankan perintah

vagrant ssh

Tips

Agar mempermudah mengakses vagrant kamu bisa tambahkan perintah ini di .bashrc kamu.

function homestead() {
    ( cd ~/Homestead && vagrant $* )
}

Kamu tinggal panggil homestead up aja deh!

Untuk windows, buat file homestead.bat lalu isikan dengan ini

@echo off

set cwd=%cd%
set homesteadVagrant=C:\Homestead

cd /d %homesteadVagrant% && vagrant %*
cd /d %cwd%

set cwd=
set homesteadVagrant=

Terus tambahkan deh ke Environtment Variable kamu.

Nantikan artikel lainnya tentang Web Development di situs ini. Kalau ada pertanyaan atau saran jangan lupa tinggalkan komentar ya~

Featured Image background by Starline at Freepik