Ubuntu’da Python FastAPI Deploy

Ubuntu sunucularında Python tabanlı FastAPI uygulamalarını başarıyla deploy etmek, modern web geliştiricileri için vazgeçilmez bir beceridir.

Reklam Alanı

Ubuntu sunucularında Python tabanlı FastAPI uygulamalarını başarıyla deploy etmek, modern web geliştiricileri için vazgeçilmez bir beceridir. FastAPI, yüksek performanslı API’ler geliştirmek üzere tasarlanmış asenkron bir framework olup, Ubuntu’nun kararlı Linux ortamıyla mükemmel uyum sağlar. Bu rehberde, kurumsal standartlara uygun adım adım bir deploy süreci ele alınacaktır. Başlangıçtan production’a geçişe kadar net talimatlar verilecek, böylece geliştiriciler kesintisiz bir hizmet sağlayabilir. Ortam hazırlığından servis yönetimine kadar her aşama, pratik örneklerle desteklenecektir.

Ortam Hazırlığı ve Bağımlılıkların Kurulumu

Ubuntu sunucunuzda FastAPI deploy’una başlamadan önce, sistemi en güncel hale getirmek esastır. Öncelikle terminali açın ve şu komutları sırayla çalıştırın: sudo apt update && sudo apt upgrade -y. Bu adım, güvenlik yamalarını ve paket güncellemelerini uygular, olası uyumsuzlukları önler. Ardından Python 3.10 veya üstü sürümü yükleyin; FastAPI’nin en iyi performansını bu sürümlerle sağlar. Komut: sudo apt install python3 python3-pip python3-venv -y. Python’un kurulumunu doğrulayın: python3 --version.

Sanal ortam oluşturmak, bağımlılık izolasyonu için kritik öneme sahiptir. Proje dizininizi oluşturun, örneğin mkdir ~/fastapi-app && cd ~/fastapi-app, sonra python3 -m venv venv ile sanal ortamı başlatın. Aktive edin: source venv/bin/activate. FastAPI ve Uvicorn’u yükleyin: pip install fastapi uvicorn[standard]. Requirements dosyasını oluşturun: pip freeze > requirements.txt. Bu dosya, production’da bağımlılıkları yeniden yüklemek için kullanılacaktır. Örnek bir main.py dosyası oluşturun:

from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root(): return {"message": "FastAPI Ubuntu Deploy Başarılı!"}

Bu hazırlık aşaması, deploy’un temelini atar ve olası hataları minimize eder. Her adımın çıktısını kontrol ederek ilerleyin; örneğin pip list ile yüklü paketleri doğrulayın.

FastAPI Uygulamasını Test Etme ve Uvicorn ile Çalıştırma

Yerel Test ve Hata Ayıklama

Uygulamanızı yerel olarak test etmek, production sorunlarını önceden tespit etmenizi sağlar. Sanal ortam aktifken uvicorn main:app --reload --host 0.0.0.0 --port 8000 komutunu çalıştırın. Tarayıcıda http://sunucu-ip:8000 adresine gidin; JSON yanıtı almalısınız. –reload parametresi, kod değişikliklerini otomatik yeniler. Hata ayıklama için logları inceleyin; FastAPI’nin otomatik docs özelliği (http://sunucu-ip:8000/docs) API’nizi görselleştirir. Bu aşamada veritabanı bağlantıları veya dış servis entegrasyonlarını test edin, örneğin SQLAlchemy ile PostgreSQL bağlantısını doğrulayın.

Production Modunda Başlatma

Production için reload’u kaldırın ve worker sayısını artırın: uvicorn main:app --host 0.0.0.0 --port 8000 --workers 4. Worker sayısı, CPU çekirdek sayısına göre ayarlayın (örneğin 4 çekirdek için 4 worker). Performansı izlemek üzere htop yükleyin: sudo apt install htop -y. Bellek kullanımını takip edin; FastAPI’nin asenkron yapısı düşük kaynak tüketimi sağlar. Bu modda uygulamanız stabil çalışmalı, ancak kalıcı olması için systemd servisi oluşturun.

Bu bölümdeki adımlar, uygulamanızın güvenilirliğini artırır ve ölçeklenebilirlik sağlar. Her test iterasyonunda logları saklayın: uvicorn ... > app.log 2>&1.

Sistem Servisi Oluşturma ve Güvenlik Ayarları

FastAPI’yi kalıcı hale getirmek için systemd unit dosyası oluşturun. sudo nano /etc/systemd/system/fastapi.service ile dosyayı düzenleyin ve şu içeriği ekleyin:

[Unit]
Description=FastAPI App
After=network.target

[Service]
User=www-data
WorkingDirectory=/home/kullanici/fastapi-app
Environment="PATH=/home/kullanici/fastapi-app/venv/bin"
ExecStart=/home/kullanici/fastapi-app/venv/bin/uvicorn main:app --host 127.0.0.1 --port 8000 --workers 4
Restart=always

[Install]
WantedBy=multi-user.target

Servisi etkinleştirin: sudo systemctl daemon-reload && sudo systemctl enable fastapi && sudo systemctl start fastapi. Durumu kontrol edin: sudo systemctl status fastapi. Loglar için journalctl -u fastapi -f kullanın. Güvenlik için UFW firewall’u etkinleştirin: sudo ufw allow 22 && sudo ufw allow 80 && sudo ufw enable. Uygulamayı 127.0.0.1’e bağlayarak dış erişimi kısıtlayın; Nginx reverse proxy ile entegre edin (ayrı konfigürasyon gerektirir).

Güvenlik optimizasyonları arasında kullanıcı izinlerini sınırlamak (www-data kullanın), otomatik yeniden başlatma ve SELinux/AppArmor kontrolleri yer alır. Düzenli güncellemelerle sistemi koruyun: sudo apt autoremove -y. Bu ayarlar, kurumsal seviyede uptime sağlar.

Bu rehberle Ubuntu’da FastAPI deploy’unu tamamlamış oldunuz. Pratik adımları uygulayarak yüksek performanslı API’lerinizi production’a taşıyın. Sürekli izleme ve yedekleme ile hizmet kalitenizi maksimize edin; örneğin Prometheus ile metrik toplayın. Başarılı deploy’lar, verimli geliştirme döngülerinin anahtarıdır.

Kategori: Genel
Yazar: Meka
İçerik: 541 kelime
Okuma Süresi: 4 dakika
Zaman: Bugün
Yayım: 20-04-2026
Güncelleme: 20-04-2026