Django Projelerini Deploy Etme
Admin paneli, ORM'i ve güçlü ekosistemiyle Django, web'in "pilleri dahil" (batteries-included) framework'üdür. Skyversal, Django projelerinizi standartlara uygun olarak Gunicorn ile otomatik ayağa kaldırır.
Bu rehberde neler öğreneceksiniz?
- ✅ Gerekli gereksinimler ve dosya yapısı
- ✅ WhiteNoise ile Statik Dosya (collectstatic) yönetimi
- ✅ Veritabanı Migration komutları (migrate)
- ✅ Gunicorn ve production ayarları (ALLOWED_HOSTS)
1. Gerekli Bağımlılıklar (requirements.txt)
Uygulamanızın üretim ortamında (production) sorunsuz çalışması için requirements.txt dosyanızda şu temel bağımlılıkların olduğundan emin olun:
Django'nun içindeki python manage.py runserver komutu sadece yerel geliştirme içindir, asla gerçek sunucuda (production) kullanılmaz. Skyversal gunicorn paketini gördüğünde projenizi çok thread'li (multi-thread) güçlü bir yapıda başlatır.
2. Güvenlik ve Ortam Değişkenleri (settings.py)
Kodunuzu GitHub'a göndermeden önce settings.py dosyanızda güvenlik ayarlarını dinamik hale getirmelisiniz. Şifreleri koda gömmeyin; Skyversal panelinden (Settings > Environment Variables) değişken olarak ekleyin.
3. Statik Dosyalar ve WhiteNoise (Çok Önemli)
DEBUG = False yapıldığında Django artık CSS, JS ve görselleri sunmayı bırakır. Statik dosyalarınızın 404 Not Found hatası vermemesi için WhiteNoise kullanmanız gerekir.
settings.py içinde MIDDLEWARE listesine WhiteNoise ekleyin. Mutlaka SecurityMiddleware'den hemen sonra gelmelidir!
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
...
]
Skyversal, projenizi derlerken otomatik olarak collectstatic komutunu çalıştırır. Dosyaların toplanacağı hedef klasörü belirtmelisiniz.
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
4. Veritabanı ve Migration (Migrate)
Skyversal üzerinden projenizi yayınladıktan sonra veritabanı tablolarınızı oluşturmanız gerekecektir.
- Skyversal paneline gidin ve projenizin Deploy Logs / Run Commands sekmesini açın.
- İlgili form alanına
python manage.py migrateyazın ve çalıştırın. - Yönetici hesabı oluşturmak için
python manage.py createsuperuserkomutu etkileşimli bir komuttur. Bunun yerine ortam değişkenlerini okuyan özel bir (custom) komut kullanabilir veya bir veritabanı istemcisi ile (DBeaver vb.) doğrudan Managed Database'inize bağlanabilirsiniz.
Sık Karşılaşılan Hatalar (Troubleshooting)
Çözüm: Projenizin kök dizininde requirements.txt dosyası yok veya içinde Django kelimesi geçmiyor. Dosyayı GitHub'a pushladığınıza emin olun.
Çözüm: DEBUG=False modundasınız ve WhiteNoise kurulmamış. 3. Adımdaki WhiteNoise ayarlarını settings.py dosyanıza ekleyin.
Çözüm: Veritabanı tablolarınız yok. Panelden python manage.py migrate komutunu çalıştırarak veritabanınızı oluşturun.
Çözüm: Gunicorn başlatılamadı. Kodunuzda syntax (sözdizimi) hatası olabilir veya ALLOWED_HOSTS ayarı eksiktir. Deploy loglarınızı kontrol edin.
Hazırsınız! 🚀
Tüm bu ayarlardan sonra projenizi pushlamanız yeterli. Skyversal, Gunicorn üzerinden sitenizi saniyeler içinde SSL ile yayına alacaktır.