Python ve Django ile Uygulama Dağıtımı: Adım Adım Kılavuz

Giriş: Neden Uygulama Dağıtımı Önemli?

Geliştirici olarak, bir projenin yalnızca yerel ortamda düzgün çalışması yeterli değildir; uygulamanızın başka kullanıcılar tarafından erişilebilir olması için dağıtım sürecini de başarılı bir şekilde tamamlamanız gerekir. Uygulama dağıtımı, yazılım geliştirme döngüsünün kritik bir parçasıdır ve bunun doğru bir şekilde yapılması, uygulamanızın performansı, güvenliği ve kullanılabilirliği üzerinde büyük bir etkiye sahip olabilir. Uygulamanızı dağıttığınızda, dünya genelinde kullanıcıların erişim sağlayabileceği bir platform oluşturmuş olursunuz.

Django, Python tabanlı güçlü bir web geliştirme çerçevesidir ve uygulama dağıtımını oldukça basit hale getirir. Django’nun sağladığı araçlar ve yöntemler sayesinde, geliştirdiğiniz uygulamayı üretim ortamına almak için gereken adımları daha etkin bir şekilde atabilirsiniz. Bu yazıda, Python ve Django ile yaptığınız uygulamayı nasıl dağıtabileceğinizi adım adım inceleyeceğiz.

Bu kılavuzda, uygulamanızı nasıl sunucuya yükleyeceğinizi, veritabanı yapılandırmalarını nasıl gerçekleştireceğinizi ve uygulamanızın güvenliğini sağlamak için hangi önlemleri almanız gerektiğini öğreneceksiniz. Hazırsanız, başlayalım!

Adım 1: Sunucu Seçimi ve Ortam Hazırlığı

Uygulamanızı dağıtmadan önce, uygun bir sunucu seçmelisiniz. Python ve Django projeleri için ideal sunucu seçenekleri arasında DigitalOcean, AWS (Amazon Web Services), Heroku ve Linode gibi popüler bulut platformları bulunmaktadır. Bu platformlar, kolay ayarlanabilirlikleri ve ölçeklenebilirlikleri ile dikkat çeker. Sunucu seçiminiz projenizin ölçeğine ve bütçenize bağlı olarak değişebilir, bu nedenle ihtiyaçlarınızı belirlemek önemlidir.

Sunucuya karar verdikten sonra, ortamınızı hazırlamanız gerekiyor. Genellikle bir VPS (Virtual Private Server) veya bulut sunucu kullanacaksınız. Sunucunuzu kurabilmeniz için SSH üzerinden bağlantı sağlamak üzere bir kullanıcı oluşturmalısınız. Aşağıdaki örnekte, Ubuntu sunucusu üzerinde gerekli adımları gerçekleştireceğiz:

ssh user@your_server_ip

Bağlantı sağladıktan sonra, sunucunuza Node.js, Nginx ve PostgreSQL gibi gerekli bileşenleri yükleyin. Bu bileşenler nihai hedefiniz olan uygulamanızın sağlıklı çalışabilmesi için gereklidir.

Adım 2: Uygulamanızın Dosyalarını Sunucuya Taşıma

Uygulamanızın dosyalarını sunucunuza taşımadan önce, yerel geliştirme ortamınızda bir sanal ortam (virtual environment) kurmalısınız. Django uygulamanızın bağımlılıklarını yönetmek için bu adım gereklidir. Sanal ortamınızda terminal komutlarıyla aşağıdaki gibi bir işlem gerçekleştirebilirsiniz:

python -m venv myenv
source myenv/bin/activate
pip install django gunicorn psycopg2

Uygulamanızı sunucuya taşımak için scp veya rsync gibi araçları kullanabilirsiniz. Örneğin:

scp -r /path/to/your/project user@your_server_ip:/path/to/destination

Bu işlemle birlikte, tüm projenizi sunucuya başarılı bir şekilde yüklemiş olacaksınız. Uygulamanızın kök dizininde gerekli dizin yapısını ve dosyaları kontrol edin. Ayrıca, uygulamanızın ayarlarını güncelleyerek sunucu ortamına uygun hale getirdiğinizden emin olun. Örneğin, DEBUG ayarını False yapmanız ve ALLOWED_HOSTS ayarını sunucu IP adresiniz veya domain adınız ile güncellemeniz gerekmektedir.

Adım 3: Veritabanı ve Statik Dosyalar

Django projeleri genelde bir veritabanı gerektirir. Uygulamanızın veritabanı ayarlarını yaparken, kullandığınız veritabanı türüne göre Django’nun ayar dosyasında gerekli değişiklikleri yapmalısınız. PostgreSQL kullanıyorsanız, aşağıdaki gibi bir yapılandırma gerçekleştirebilirsiniz:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'your_db_name',
        'USER': 'your_db_user',
        'PASSWORD': 'your_db_password',
        'HOST': 'localhost',
        'PORT': '',
    }
}

Veritabanınızı oluşturduktan sonra, Django’nun migrate komutunu çalıştırarak veritabanı tablolarınızı oluşturmalısınız:

python manage.py migrate

Ayrıca, statik dosyalarınızı (CSS, JavaScript) sunucuya yüklemek için Django’nun collectstatic komutunu kullanmalısınız:

python manage.py collectstatic

Bu komut, projedeki tüm statik dosyaları belirttiğiniz statik dosya yoluna kopyalayacaktır. Sunucunuzda bir dizin oluşturun ve bu dizinde statik dosyalarınızı çalışır hale getirin. Artık uygulamanızın görsel bileşenleri hızlı bir şekilde yüklenmeye hazır!

Adım 4: Web Sunucusu Kurulumu

Uygulamanızı kullanıcıların erişmesine imkan sağlamak için bir web sunucusu kurmalısınız. Django, Gunicorn gibi bir WSGI sunucusu ile çalıştırılabilir. Gunicorn, uygulamanızı Nginx veya Apache gibi bir ters proxy sunucusuna entegre ederek çalıştırmanıza olanak tanır. Gunicorn kurulumunu şu şekilde gerçekleştirebilirsiniz:

pip install gunicorn

Uygulamanızı başlatmak için Gunicorn’u şu şekilde çalıştırın:

gunicorn --bind 0.0.0.0:8000 your_project.wsgi:application

Bu adımda Gunicorn ile Django uygulamanız çalışmaya başlayacak ve 8000 numaralı port üzerinden erişilebilecektir. Bu işlemi arka planda çalıştırmak için screen veya tmux gibi araçları kullanabilirsiniz.

Son olarak, Nginx kurarak gelen talepleri doğru bir şekilde yönlendirmelisiniz. Nginx konfigürasyon dosyasını aşağıdaki gibi ayarlayabilirsiniz:

server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Adım 5: Güvenlik Önlemleri ve Bakım

Uygulamanızı dağıttıktan sonra, güvenlik önlemlerini almak önemlidir. SSL sertifikası kullanarak HTTPS üzerinden güvenli bir bağlantı sağlamak, veri güvenliği açısından oldukça kritiktir. Let’s Encrypt gibi ücretsiz sertifika sağlayıcılarıyla SSL sertifikası alarak bunu hızlı bir şekilde gerçekleştirebilirsiniz.

Ayrıca, sunucunuzda gereksiz hizmetleri kapatmaya dikkat edin. Gereksiz açık portlar, sızma girişimlerine neden olabilir. UFW (Uncomplicated Firewall) kullanarak güvenlik duvarınızı yapılandırabilir ve sadece gerekli olan portlara erişim izni verebilirsiniz. Örneğin:

sudo ufw allow 'Nginx Full'

Sadece belirttiğiniz portların açık olduğundan ve sunucunuzun güncel olduğundan emin olun. Periyodik olarak güncellemeler yaparak sisteminizi güvenli bir şekilde koruyabilirsiniz. Ayrıca, günlük tutma işlemlerini uygulayarak sistemdeki aktiviteleri izlemekte yarar vardır.

Özet

Django ve Python ile uygulama dağıtımı, dikkat ve özen gerektiren bir süreçtir. Uygulamanızı sunucuya yüklemeden önce uygun bir ortam hazırlamak, dosyalarınızı taşımak, veritabanı ve statik dosya ayarlarını yapılandırmak kritik öneme sahiptir. Web sunucusu kurarak uygulamanızın erişilebilirliğini sağladıktan sonra, gerekli güvenlik önlemlerini alarak sürdürülebilir bir ortam oluşturmalısınız.

Bu rehber sayesinde adım adım ilerleyerek kendi Django uygulamanızı başarıyla dağıtmayı öğrenmiş oldunuz. Kendi projelerinizi oluştururken bu bilgileri uygulamayı unutmayın. Merak ederseniz, deneyimlerinizi bizimle paylaşabilirsiniz! Unutmayın, her zaman denemek ve öğrenmek için bir zaman vardır!

Geliştirdiğiniz uygulamayı dağıtmak ve daha fazla beceri kazanmak için çalışmaya devam edin. Python ve Django ile yapabileceklerinizin sınırı yok!

Scroll to Top