xudbinSUNUCU PANELİ

← Tüm rehberler

Django uygulamasını kendi sunucunda yayınlama

GitHub'daki bir Django projesini Xudbin ile yayına alır, veritabanını bağlar ve deploy hatalarını Deploy Doktoru ile çözersin. Dockerfile yazman gerekmez.

2 dk okuma

Başlamadan önce

  • Xudbin kurulu bir sunucu (bkz. kurulum rehberi)
  • GitHub'da bir Django projesi; requirements.txt repoda olmalı

1. Proje oluştur

Projeler > Proje oluştur'a bas ve bir ad ver. Her projenin kendi Docker ağı vardır; bir projedeki uygulama başka projenin veritabanına ulaşamaz.

2. Veritabanı ekle

Projenin içinde bir PostgreSQL veritabanı oluştur. Bağlantı bilgilerini uygulamanın ortam değişkenlerine ekleyeceksin.

3. Uygulamayı ekle

  1. Uygulama ekle > Git reposu'nu seç ve repo adresini yaz. Özel repo için erişim token'ı gir ya da GitHub App bağlıysa GitHub'dan seç.
  2. Repoyu incele'ye bas. Xudbin repoyu tarar ve Django önerir. Repoda Dockerfile yoksa Dockerfile'ı Xudbin üretir ve deploy logunda gösterir.
  3. Django kartında Her deploy'da migrate çalıştır seçeneğini açık bırak.

4. Ortam değişkenleri

Ayarlar adımında Gerekenlerin hepsini ekle'ye bas; gizli anahtar gibi değerler otomatik üretilir. Alan adlarını elle yazmak yerine şu yer tutucuları kullan:

DJANGO_ALLOWED_HOSTS={{XUDBIN_DOMAINS}}
CSRF_TRUSTED_ORIGINS={{XUDBIN_ORIGINS}}

Deploy sırasında uygulamanın güncel alan adlarıyla doldurulurlar; sonradan alan adı eklesen de ayarı değiştirmen gerekmez. Değerler şifreli saklanır.

settings.py içinde bu değişkenleri okuduğundan emin ol:

ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS", "").split(",")
CSRF_TRUSTED_ORIGINS = os.environ.get("CSRF_TRUSTED_ORIGINS", "").split(",")

5. Deploy et

Oluştur ve deploy et'e bas. Canlı log Deploylar sekmesinde akar. Yeni sürüm, gerçek alan adına sağlıklı yanıt verince trafiği devralır; 400 veya 5xx dönerse eski sürüm yayında kalır.

Uygulama yayına girince Genel sekmesinde uygulama-x7k2.1-2-3-4.sslip.io gibi otomatik adresini görürsün.

Deploy başarısız olursa

Genel sekmesindeki Deploy Doktoru > Teşhis et'e bas. Django'da sık görülen sorunlar tanınır ve açıklanır: ALLOWED_HOSTS, CSRF, eksik gizli anahtar, veritabanı bağlantısı, migration, eksik paket veya bellek yetmezliği. Uygun olanlar tek tıkla düzeltilip yeniden deploy edilir.

Logları geriye dönük aramak için Loglar sekmesinde Traceback ya da 500 ara.

Otomatik deploy

GitHub App bağlıysa her push'ta otomatik deploy açabilir, her pull request için ayrı bir önizleme adresi alabilirsin.