10 yılı aşkın süredir Laravel uygulamaları dağıttıktan sonra, üretimde kullandığım Docker yığını açık kaynak hale getirdim.
Sorun
Sorun
Her yeni Laravel projesi, birkaç saat süren aşağıdaki işlemleri gerektiriyordu:
- Docker Compose yapılandırması
- Nginx ve SSL sertifikalarının ayarlanması
- Sunucu güvenliği (Fail2Ban, güvenlik duvarı, SSH)
- Dağıtım scriptlerinin yazılması
- İzinlerin hatalarının giderilmesi
İlk işlerin bu kadar karmaşık olması, aslında yapmamız gereken işten öncesinde yaratılan bir sürtünmeydi.
Çözüm: Dockavel
Çözüm: Dockavel
Tek bir komutla her şeyi halleden, üretime hazır bir Docker ortamı:
./scripts/deploy.sh prod
Ne Yapar?
Ne Yapar?
🚀 Tek-Komut Dağıtımı
🚀 Tek-Komut Dağıtımı
- Geliştirme:
./scripts/dev.sh up - Üretim:
./scripts/deploy.sh prod - Zero-downtime dağıtımları
🔐 Otomatik SSL
🔐 Otomatik SSL
- Let’s Encrypt entegrasyonu ile otomatik yenileme
- Cloudflare köken sertifikaları desteği
- Akıllı proxy algılama
- HTTP’den HTTPS’ye yönlendirmeler
🛡️ Güvenlik Güçlendirme
🛡️ Güvenlik Güçlendirme
Sunucu kurulum scripti şunları yapılandırır:
- SSH ve HTTP koruması için Fail2Ban
- Minimum portlarla UFW güvenlik duvarı
- SSH güçlendirme (sadece anahtar, özel port)
- Otomatik güvenlik güncellemeleri
📦 Tam Üretim Yığını
📦 Tam Üretim Yığını
- Laravel 12+ optimizasyonlarla birlikte
- PHP 8.4-FPM uzantılarıyla
- MySQL 8.0 kalıcı hacimlerle
- Redis 7.0 önbellek ve oturumlar için
- Laravel Horizon kuyruğu izleme
- Nginx ters proxy olarak
💾 Otomatik Yedekleme
💾 Otomatik Yedekleme
- Günlük veritabanı yedeklemeleri
- Ayarlanabilir tutulma süresi (7/30/90 gün)
- Elektronik posta bildirimleri
- Tek-komutla geri yükleme
Hızlı Başlangıç
Hızlı Başlangıç
# Repo'yu klonla
git clone https://github.com/mg2k4/Dockavel.git my-project
cd my-project
# Geliştirme
./scripts/deploy.sh dev
# Üretim (sunucunuzda)
./scripts/server-setup.sh # İlk kez yalnızca
./scripts/deploy.sh prod
Artık uygulamanız SSL ile, güvenlik güçlendirmesiyle ve otomatik yedeklemelerle çalışıyor!
Onu Farklı Kılan Nedir?
Onu Farklı Kılan Nedir?
Laravel Sail: Yerel geliştirme için harika, ancak üretime uygun değil.
Laradock: Birçok seçenek sunuyor ama üretim için karmaşık.
Dockavel: Üretim odaklı, fikir birliği olan, dağıtım için tek komut.
Mimarisi
Mimarisi
┌─────────────┐
│ Nginx │ ← SSL sona erdirme, ters proxy
└──────┬──────┘
│
┌──────▼──────┐
│ PHP-FPM │ ← Laravel uygulaması
└──────┬──────┘
│
┌───┴───┬─────────┐
│ │ │
┌──▼──┐ ┌─▼───┐ ┌──▼────┐
│MySQL│ │Redis│ │Horizon│
└─────┘ └─────┘ └───────┘
Bağlantılar
Bağlantılar
📚 Dokümantasyon: https://dockavel.com
📦 GitHub: https://github.com/mg2k4/Dockavel
🎥 Demo Videosu: https://www.youtube.com/watch?v=o-kj-T2QlXw
İlk Açık Kaynak Projem
İlk Açık Kaynak Projem
Bu, açık kaynak bir projeyi ilk kez paylaştığım bir deneyim. Bu yığını 5 yıldan fazla süredir üretimde kullanıyorum ve nihayet bunu paylaşmak üzere temizledim.
Geri bildirimler, sorunlar ve PR’lar çok hoş karşılanır! Görmek istediğiniz özellikleri bana bildirin.
Lisans
Lisans
MIT – Kullanmak, değiştirmek ve dağıtmak için özgürsünüz.
Eğer bu, size birkaç saatlik Docker yapılandırması tasarrufu sağlarsa, bunu bir başarı olarak kabul edeceğim. Güzel dağıtımlar! 🚀
Laravel ile hangi dağıtım zorlukları ile karşılaşıyorsunuz? Yorumlarda belirtin!
Kaynak: Orijinal Makale


