Flask Projelerini Deploy Etme
Minimalist, esnek ve güçlü yapısıyla Flask, mikro servisler ve API'ler için mükemmel bir seçimdir. Skyversal, Flask projelerinizi ekstra bir yapılandırma gerektirmeden Gunicorn üzerinden anında yayına alır.
Bu rehberde neler öğreneceksiniz?
- ✅ Gerekli gereksinimler (Gunicorn zorunluluğu)
- ✅ Uygulama örneği (app nesnesi) algılama mantığı
- ✅ Ortam değişkenleri (Environment Variables) kullanımı
- ✅ Özelleştirilmiş giriş noktası (FLASK_APP)
1. Gerekli Bağımlılıklar (requirements.txt)
Flask uygulamalarının üretim ortamında (production) çalışabilmesi için Flask paketinin yanında bir WSGI sunucusuna ihtiyacı vardır. Bağımlılık dosyanızda şu iki paketin olduğundan emin olun:
2. Flask Uygulaması Nasıl Algılanır?
Skyversal, Flask projenizi başlatırken otomatik olarak Gunicorn kullanır. Gunicorn'un uygulamanızı bulabilmesi için kodunuzda app = Flask(__name__) tanımlaması olmalıdır.
Skyversal sırasıyla şu dosyalardaki app nesnesini arar:
-
app.py -
main.py -
application.py -
wsgi.py
Eğer uygulamanız farklı bir dosyadaysa (örneğin server.py içindeyse), Skyversal paneline gidip Settings > Environment Variables kısmına yeni bir değişken ekleyin:
Key: FLASK_APP
Value: server:app
3. Ortam Değişkenleri (Environment Variables)
Flask uygulamanızda şifreleri, API anahtarlarını veya veritabanı URL'lerini doğrudan kod içinde tutmamalısınız. Skyversal paneli üzerinden eklediğiniz değişkenleri kodunuzda os.getenv() ile kolayca okuyabilirsiniz:
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv('DATABASE_URL')
@app.route('/')
Sık Karşılaşılan Hatalar (Troubleshooting)
Çözüm: Gunicorn app nesnesini bulamıyor. Dosya isminizin standart (app.py vb.) olduğundan veya FLASK_APP değişkenini doğru ayarladığınızdan emin olun.
Çözüm: Kök dizinde requirements.txt eksik. Bağımlılıklarınızı pip freeze > requirements.txt komutuyla dışa aktarıp GitHub'a gönderin.
Çözüm: Eğer kodunuzun en altında app.run(port=...) kullanıyorsanız, Skyversal Gunicorn kullandığı için bu satır gereksizdir. Silebilirsiniz.
Hazırsınız! 🚀
Tüm kontrolleri yaptıysanız tek yapmanız gereken kodunuzu pushlamak. Skyversal saniyeler içinde SSL sertifikalı Flask uygulamanızı yayına alacaktır.