Instalasi dan Konfigurasi Proyek Laravel dengan Laravel Sail
27 Februari 2025
·
3 menit · 15 kali baca

Salah satu tantangan umum saat memulai proyek Laravel adalah menyiapkan development environment yang stabil dan konsisten sejak awal.
Nah, di sinilah Laravel Sail hadir sebagai solusi!
Laravel Sail merupakan CLI (Command Line Interface) ringan berbasis Docker yang mempermudah proses setup development environment proyek Laravel.
Dengan Laravel Sail, kita bisa langsung fokus ke pengembangan tanpa harus repot mengatur dependency dan konfigurasi environment secara manual—bahkan jika belum pernah menggunakan Docker sekalipun.
Pada artikel ini, kita akan mempelajari cara melakukan instalasi dan konfigurasi proyek Laravel dengan Laravel Sail.
Instalasi Proyek Laravel dengan Laravel Sail
Pertama, pastikan Docker Engine sudah di-install pada komputer. Jika belum, silakan ikuti panduan instalasi pada dokumentasi Docker: Instalasi Docker Engine.
Pada halaman tersebut, pilih sistem operasi yang digunakan (Windows, macOS, atau Linux) dan ikuti langkah-langkah yang disediakan.
Buka Terminal, lalu jalankan perintah berikut:
curl -s "https://laravel.build/k7i-blogs?with=pgsql" | bash
- Perintah ini akan membuat proyek Laravel baru bernama k7i-blogs.
- Parameter
?with=pgsql
menambahkan service PostgreSQL ke dalam container Laravel Sail sebagai driver database default untuk proyek ini.
Jika ingin menggunakan driver database lain (seperti MySQL, Redis, dsb.) atau service lainnya, silakan merujuk pada dokumentasi Laravel: Choosing Your Sail Services.Proses instalasi akan berjalan dan mungkin membutuhkan waktu beberapa saat.
Setelah itu, kita mungkin diminta memasukkan password untuk menyesuaikan permission pada direktori proyek.
Setelah proses instalasi selesai, pindah ke direktori proyek dengan menjalankan perintah berikut:
cd k7i-blogs
Jalankan perintah berikut untuk memulai container:
./vendor/bin/sail up
Untuk menjalankan container dalam mode detached (background), tambahkan flag
-d
, sebagai berikut:./vendor/bin/sail up -d
Buka browser dan akses http://localhost untuk melihat halaman default Laravel.
Tunggu! Mengapa kita malah menemukan halaman error seperti ini?
Illuminate\Database\QueryException SQLSTATE[42P01]: Undefined table: 7 ERROR: relation "sessions" does not exist
Tenang… ini terjadi karena Laravel mencoba mengakses database, namun tabel-tabel yang dibutuhkan belum dibuat. Untuk itu, kita perlu menjalankan migrasi database (akan dibahas nanti).
Untuk mengatasinya, cukup jalankan perintah berikut di Terminal:
./vendor/bin/sail artisan migrate
Setelah itu, coba kembali ke browser dan refresh halaman. Sekarang, kita seharusnya sudah bisa melihat halaman default Laravel! 🎉
Menyesuaikan Timezone Laravel ke Zona Waktu Lokal
Secara default, Laravel menggunakan UTC
sebagai timezone. Namun, agar pengaturan waktu di database dan aplikasi sesuai dengan zona waktu lokal, kita bisa mengubahnya menjadi Asia/Jakarta
.
Berikut adalah langkah-langkah yang dapat diikuti:
- Buka proyek pada code editor atau IDE.
- Buka file config/app.php.
- Sesuaikan nilai
timezone
dariUTC
menjadiAsia/Jakarta
.
📄 config/app.php'timezone' => 'Asia/Jakarta',
Konfigurasi Alias untuk Perintah Sail
Seiring dengan proses pengembangan kedepannya, kita akan sering menggunakan perintah sail
. Agar lebih praktis, kita bisa menambahkan alias pada file konfigurasi shell di direktori home.
Buka Terminal, lalu jalankan perintah berikut (sesuaikan dengan file konfigurasi shell yang tersedia):
Bash:
~/.bashrc
echo "alias sail='sh $([ -f sail ] && echo sail || echo vendor/bin/sail)'" >> ~/.bashrc
Zsh:
~/.zshrc
echo "alias sail='sh $([ -f sail ] && echo sail || echo vendor/bin/sail)'" >> ~/.zshrc
Setelah itu, tutup dan buka kembali Terminal untuk menerapkan perubahan.
Mulai sekarang, kita cukup menulis perintah sail
tanpa harus mengetik ./vendor/bin/sail
lagi.
Selamat! 🎉 Proyek Laravel kita sudah siap dikembangkan lebih lanjut tanpa perlu konfigurasi environment secara manual.
Pada artikel berikutnya, kita akan mengenal bagaimana Laravel menyusun struktur aplikasi melalui konsep MVC (Model-View-Controller). Tetap semangat!