Laravel Sail ile Lokal Geliştirme Ortamı Otomasyonu

L

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:

 
cd sail-projesi
./vendor/bin/sail up

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.

By Aydın Yağız

Aydın Yağız

Teknolojiye olan tutkumla inovasyonu destekler, kullanıcı deneyimini önceliklerim arasına alırım. Kendi yeteneklerimi ve bilgilerimi paylaşarak, daha geniş bir topluluğun faydalanmasını sağlarım. İş birliği içinde hareket ederek, geleceğin teknoloji dünyasına katkıda bulunmayı hedeflerim. Sizi de bu heyecan verici yolculuğa davet ediyor, fikirlerinizi paylaşmaya ve teknolojiye dair sınırları zorlamaya teşvik ediyorum. Birlikte büyüyelim ve yeni ufuklara açılalım!

İletişime Geçin

Kodlama dünyasına adım atın ve deneyimlerinizi paylaşın. Siz de bu aktif topluluğa katılarak yeni bağlantılar kurun, fikir alışverişinde bulunun ve bilgi birikiminizi artırın.

Özelleştir

Farklı yazı tipleri ve renk seçenekleriyle stilinizi kişiselleştirin. Aşağıdaki örneklerden birini deneyerek sizin için en uygun olanı seçin.

Yazı Tipi Örnekleri

Renk Örnekleri