Laravel projelerinde lokal geliştirme ortamı kurmak, özellikle büyüyen uygulamalarda ciddi bir zaman kaybına dönüşebilir. PHP sürüm uyumsuzlukları, veritabanı yapılandırmaları, Redis ve kuyruk servislerinin manuel kurulumu; geliştiricilerin asıl odak noktası olan kod geliştirmeden uzaklaşmasına neden olur.
Bu noktada Laravel Sail, Laravel projeleri için standart, hızlı ve sürdürülebilir bir lokal geliştirme ortamı sunar. Docker tabanlı bir yapı üzerine kurulu olan Sail, Laravel uygulamalarını tek komutla çalıştırmayı mümkün hale getirir. MySQL, Redis, Meilisearch gibi sık kullanılan servisler, ek bir kurulum gerektirmeden Laravel ile tam uyumlu şekilde hazır gelir.
Laravel Sail sayesinde hem bireysel geliştiriciler hem de ekipler, herkes için aynı ve tekrarlanabilir bir geliştirme ortamı oluşturabilir. Bu da “bende çalışıyor” problemlerini büyük ölçüde ortadan kaldırır.
Bu rehberde; Laravel Sail’in temel çalışma mantığı, kurulum süreci, Docker bilgisi gerektirmeden nasıl kullanılabileceği ve Laravel projelerinde Redis, MySQL, Meilisearch gibi servislerin Sail ile nasıl entegre edileceği adım adım ve uygulanabilir örneklerle ele alınacaktır. Modern, profesyonel ve sürdürülebilir bir Laravel geliştirme ortamı oluşturmak isteyen geliştiriciler için yol gösterici bir kaynak olması hedeflenmektedir.
Laravel Sail Nedir?
Laravel Sail, Laravel projeleri için hazırlanmış, Docker tabanlı resmi bir lokal geliştirme ortamıdır. Laravel ekibi tarafından sunulan bu yapı, geliştiricilerin PHP, MySQL, Redis gibi bağımlılıkları tek tek kurmak zorunda kalmadan projeyi hızlıca ayağa kaldırmasını sağlar.
Sail’in en büyük avantajı, karmaşık Docker yapılandırmalarını geliştiriciden gizlemesidir. Arka planda Docker çalışır; ancak geliştirici tarafında yalnızca birkaç basit komutla tüm servisler yönetilebilir. Bu sayede Docker bilgisi olmayan geliştiriciler bile Sail’i rahatlıkla kullanabilir.
Laravel Sail varsayılan olarak şu servisleri destekler:
-
PHP (Laravel sürümüne uygun)
-
MySQL / PostgreSQL
-
Redis
-
Meilisearch
-
Mailpit
-
Selenium
Bu servisler ihtiyaçlara göre kolayca eklenip çıkarılabilir.
Laravel Sail Ne Değildir?
Laravel Sail, bir production (canlı ortam) çözümü değildir. Sail yalnızca lokal geliştirme ve test ortamları için tasarlanmıştır. Canlı sunucular için Docker tabanlı farklı çözümler (Laravel Forge, Vapor, Kubernetes vb.) tercih edilmelidir.
Ayrıca Sail:
-
Docker’ı tamamen ortadan kaldırmaz
-
Performans optimizasyonu aracı değildir
-
Sunucu yönetimi çözümü değildir
Amacı nettir: Lokal ortamı standartlaştırmak ve hızlandırmak.
Laravel Sail Neden Kullanılmalı?
Laravel projelerinde Sail kullanmanın başlıca avantajları şunlardır:
1. Ortam Tutarlılığı
Ekipteki herkes aynı PHP sürümünü, aynı MySQL ayarlarını ve aynı servisleri kullanır. “Bende çalışıyor” problemi ortadan kalkar.
2. Hızlı Kurulum
Yeni bir projeyi veya mevcut projeyi dakikalar içinde çalıştırabilirsiniz.
3. Bağımlılık Karmaşasını Ortadan Kaldırır
PHP, Composer, MySQL gibi araçları sisteminize kurmanız gerekmez.
4. Yeni Başlayanlar İçin Büyük Kolaylık
Laravel’e yeni başlayanlar için lokal ortam kurmak genellikle en zor adımdır. Sail bu süreci oldukça basitleştirir.
Laravel Sail Kurulumu
Yeni Bir Laravel Projesi ile Sail Kurmak
Laravel 10 ve üzeri sürümlerde Sail varsayılan olarak gelir.
curl -s https://laravel.build/sail-projesi | bash
Proje klasörüne girip Sail’i başlatın:
Bu komut arka planda:
-
Docker container’larını oluşturur
-
PHP, MySQL gibi servisleri başlatır
-
Laravel uygulamasını çalışır hale getirir
Tarayıcıdan:
http://localhost
adresine gittiğinizde proje çalışıyor olacaktır.
Mevcut Laravel Projesine Sail Ekleme
Var olan bir projeye Sail eklemek için:
composer require laravel/sail --dev
Ardından Sail yapılandırmasını oluşturun:
php artisan sail:install
Hangi servisleri kullanmak istediğiniz sorulur. Örneğin:
-
mysql
-
redis
-
meilisearch
Seçimleri yaptıktan sonra:
./vendor/bin/sail up
Sail Komutlarının Kullanımı
Sail, Docker komutlarını sizin yerinize sadeleştirir.
Artisan Komutları
./vendor/bin/sail artisan migrate
Composer Komutları
./vendor/bin/sail composer install
NPM / Vite Komutları
./vendor/bin/sail npm install
./vendor/bin/sail npm run dev
İsterseniz terminal kolaylığı için alias tanımlayabilirsiniz:
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
Sonrasında:
sail up
yeterli olur.
MySQL Entegrasyonu
Sail MySQL’i otomatik olarak ayağa kaldırır. .env dosyasında varsayılan ayarlar şu şekildedir:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=sail
DB_PASSWORD=password
Ekstra bir ayar yapmadan migration çalıştırabilirsiniz:
sail artisan migrate
Redis Entegrasyonu
Redis, kuyruk ve cache işlemleri için oldukça önemlidir.
.env dosyası:
CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
REDIS_HOST=redis
Redis cache testi:
Cache::put('test_key', 'Laravel Sail Redis', 60);
Meilisearch Entegrasyonu
Meilisearch, modern ve hızlı bir arama motorudur. Sail ile kurulumu oldukça basittir.
.env Ayarları
SCOUT_DRIVER=meilisearch
MEILISEARCH_HOST=http://meilisearch:7700
Model Entegrasyonu
use Laravel\Scout\Searchable;
class Post extends Model
{
use Searchable;
}
Index oluşturma:
sail artisan scout:import "App\Models\Post"
Docker Bilgisi Olmadan Sail Kullanmak Mümkün mü?
Evet.
Laravel Sail’in en büyük farkı budur. Docker arka planda çalışır; ancak geliştirici Dockerfile, image, volume gibi detaylarla uğraşmaz.
Sail’i etkin kullanan birçok Laravel geliştiricisi Docker’ın teknik detaylarını bilmeden projelerini yönetmektedir.
Gerçek Hayatta Laravel Sail Kullanımı
Laravel Sail özellikle şu senaryolarda çok etkilidir:
-
Yeni ekip üyelerinin projeye hızlı adapte olması
-
Open-source projelerde standart ortam sunulması
-
Eğitim ve demo projeleri
-
Mikroservis tabanlı Laravel projeleri
-
CI/CD süreçlerinde lokal test ortamı
Büyük ekiplerde Sail, onboarding süresini ciddi şekilde kısaltır.
Laravel Sail Dezavantajları Var mı?
Her teknolojide olduğu gibi Sail’in de bazı dezavantajları vardır:
-
Docker performansı düşük makinelerde yavaş olabilir
-
Windows ortamlarında ekstra yapılandırma gerekebilir
-
Production ortamı için uygun değildir
Ancak lokal geliştirme açısından sağladığı avantajlar bu dezavantajların çok önündedir.
Sonuç
Laravel Sail, modern Laravel projeleri için hızlı, standart ve sürdürülebilir bir lokal geliştirme ortamı sunar. Docker karmaşasını geliştiriciden gizleyerek, odak noktasını tekrar koda çeker.
Eğer Laravel projelerinde ortam kurmakla vakit kaybetmek istemiyor, ekip içinde tutarlı bir geliştirme süreci hedefliyorsanız Laravel Sail kesinlikle değerlendirilmesi gereken bir çözümdür.
