01
Python hosting ile neler çalıştırabilirsiniz?
- Django ile yazılmış şirket siteleri, içerik siteleri ve yönetim panelleri
- Flask ile yazılmış küçük web uygulamaları, REST API'ler ve webhook (geri çağırma) karşılayıcıları
- FastAPI gibi ASGI çatıları, WSGI'ye çeviren bir adaptörle (ör.
a2wsgi); WebSocket gibi açık kalan bağlantılar bu yolla çalışmaz - Cron ile belirli aralıklarla çalışıp biten Python betikleri
02
Başlamadan önce: Python sürümü ve requirements.txt
Uygulama yöneticisinde Python 3.11, 3.12 ve 3.13 arasından seçim yaparsınız. Bilgisayarınızda hangi sürümle geliştirdiyseniz (python --version) ona en yakın olanı seçin. Django'nun resmî belgelerine göre Django 6.0 ve 6.1 Python 3.12 ve üstünü ister; 3.11 ile çalışacaksanız uzun süreli destekli (LTS) Django 5.2 uygun seçenektir.
Bağımlılık listesini yerelde pip freeze > requirements.txt ile çıkarıp gereksiz paketleri ayıklayın. Yereldeki venv klasörünü yüklemeyin; sanal ortam başka makineye taşınınca çalışmaz, sunucuda yeniden oluşturulur.
Uygulamanın kök klasörünü public_html dışında, örneğin /home/kullanici/uygulamam gibi bir yerde tutun. Böylece settings.py ya da .env gibi dosyalar tarayıcıdan istenemez.
03
Python web uygulaması yayınlama: adım adım
- cPanel'de Python uygulama yöneticisini açıp yeni uygulama oluşturun: Python sürümünü, kök klasörü, yayın adresini (alan adı ya da alt yol), başlangıç dosyasını ve giriş noktasını (WSGI nesnesinin adı) girin.
- Proje dosyalarını kök klasöre yükleyin: cPanel dosya yöneticisiyle arşiv olarak yükleyip açın ya da Terminal'de
git clone ile çekin. - Komutları (pip, virtualenv, manage.py) cPanel → Terminal ekranında, yani tarayıcıdan çalıştırırsınız; kendi bilgisayarınızdan doğrudan SSH bağlantısı için destek ekibine sorun. Yönetici, sanal ortama girmek için
source …/bin/activate komutunu gösterir. Terminal'de bu komutu çalıştırıp pip install -r requirements.txt ile paketleri kurun ya da requirements.txt dosyasını yöneticinin yapılandırma dosyaları alanına ekleyip kurulumu oradan başlatın. - Gizli anahtarı, veritabanı parolasını ve API anahtarlarını koda yazmak yerine yöneticinin ortam değişkenleri bölümüne ekleyin.
- Tabloları oluşturun, statik dosyaları toplayın, ardından yöneticideki yeniden başlatma (Restart) düğmesine basın. Kodu sonradan değiştirdiğinizde de değişikliğin devreye girmesi için uygulamayı bu düğmeyle yeniden başlatın.
- Alan adınızı hesaba bağladıktan sonra adresi https ile açıp formları ve yönetim panelini deneyin.
04
Django hosting: canlı ortam ayarları
Başlangıç dosyası olarak projenin wsgi.py dosyasını gösterebilir ya da kök klasörde from proje.wsgi import application satırını içeren küçük bir dosya oluşturabilirsiniz; giriş noktası iki durumda da application olur. Buradaki proje, settings.py dosyasını içeren paketin adıdır.
Canlıya çıkmadan önce settings.py içinde DEBUG = False yapın, ALLOWED_HOSTS listesine alan adınızı www'lu ve www'suz yazın, SECRET_KEY değerini os.environ["DJANGO_SECRET_KEY"] ile ortam değişkeninden okuyun.
Ayarlar ortam değişkeni okuduğundan, Terminal oturumunda bu değişkenler tanımlı değilse önce export ile tanımlayın. Sonra sanal ortamda python manage.py migrate ile tabloları oluşturun, createsuperuser ile yönetici hesabını açın, collectstatic ile statik dosyaları STATIC_ROOT klasöründe toplayın. DEBUG kapalıyken Django bu dosyaları kendisi sunmaz; WhiteNoise gibi bir ara katman (middleware) işi uygulamanın içinden yapar. python manage.py check --deploy ise eksik güvenlik ayarlarını listeler.
05
Flask hosting: uygulama nesnesi ve başlangıç dosyası
Flask'te sunucunun aradığı şey app = Flask(__name__) satırıyla oluşturduğunuz nesnedir. Nesne app.py içindeyse başlangıç dosyası bu dosya, giriş noktası app olur. Uygulama fabrikası (create_app()) kullanıyorsanız ayrı bir wsgi.py açıp from uygulamam import create_app ve application = create_app() satırlarını yazın.
app.run() geliştirme sunucusunu başlatır, canlıda kullanılmaz; çağrıyı if __name__ == "__main__": bloğunda bırakın. Oturum çerezlerini imzalayan SECRET_KEY değerini de ortam değişkeninden okuyun.
06
Veritabanı: Django ve Flask için MySQL
Paketlerde MySQL ve phpMyAdmin bulunur. cPanel'in MySQL bölümünde bir veritabanı ve bir kullanıcı oluşturup kullanıcıya o veritabanında yetki verin. Adların başına cPanel kullanıcı adınız eklenir (ör. kullanici_blog); bağlantı adresi genellikle localhost'tur.
Django'da ENGINE değerini varsayılan SQLite yerine django.db.backends.mysql yapın. Django'nun önerdiği sürücü mysqlclient'tır ve Linux'ta kurulurken derlenir; hata alırsanız çıktıyı destek talebine ekleyin. Flask ve SQLAlchemy tarafında saf Python ile yazılmış PyMySQL derleme istemez; mysql+pymysql://… biçimindeki bağlantı adresini de ortam değişkeninden okuyun. Türkçe karakterler ve emoji için bağlantı ayarlarında utf8mb4 karakter setini kullanın.
07
Zamanlanmış işler: cron ile Python betiği
Bülten göndermek, eski kayıtları temizlemek ya da bir servisten veri çekmek gibi işleri cPanel'in Cron İşleri bölümüne komut olarak eklersiniz. Komutta sanal ortamdaki Python'un tam yolunu kullanın (yol, etkinleştirme komutunda yazar), örneğin cd /home/kullanici/uygulamam && …/bin/python manage.py clearsessions. Yöneticide tanımladığınız ortam değişkenleri cron görevine aktarılmaz; ayarlarınız bu değişkenleri okuyorsa onları komutun başında ya da betiğin okuduğu bir dosyada tanımlayın. Görev işini yapıp kapanmalıdır; sonsuz döngüye giren betikler bu ortama uygun değildir.
08
Python hosting yerine sunucu gereken işler
Python hosting, isteği yanıtlayıp duran WSGI uygulamaları içindir. Aşağıdaki işler ise sürekli açık bir süreç, kuyruk ya da root erişimi ister ve sunucuda çalışır:
- Sürekli bağlı kalan Discord ve Telegram botları: Discord Bot VDS ya da VDS sunucu; kurulum anlatımları Discord bot yazılarında.
- Celery ya da RQ işçileri (worker) ve onların istediği Redis veya RabbitMQ: süreçleri kendiniz yönettiğiniz bir VDS.
- Makine öğrenmesi: model eğitimi ve GPU gerektiren işler bu paketlerin kapsamında değildir; CPU ile çalışan küçük modeller için yeterli RAM'i olan bir VDS seçin.
- Docker imajı ya da Docker Compose ile gelen projeler: AI Hosting.
- Kod yazmadan servisleri birbirine bağlayan otomasyon akışları: n8n Sunucu.
09
Paket seçimi: tablodaki sınırlar ne anlama gelir?
CPU limiti CloudLinux'un çekirdek ölçüsüyle okunur: %200 iki, %800 sekiz çekirdeğe kadar kullanım demektir. Bellek sınırı hesaptaki bütün süreçlere birlikte uygulanır; ziyaretçi arttıkça başlatılan her Python süreci aynı bellek sınırından pay alır.
Tek bir Flask API'si ya da kişisel bir Django projesi için HAN-DEV-1 ile başlayabilirsiniz; birkaç uygulama ve alan adı için RAM ve ek site sütunlarına bakın. Aynı paketler Laravel hosting ve Node.js hosting sayfalarında da listelenir.
10
Python hosting Türkiye: İstanbul'da barındırma ve destek
Hesabınız İstanbul'da, Datacasa veri merkezindeki sunucularda barınır; uygulamanız Türkiye'deki kullanıcılarınıza yakın bir noktadan yanıt verir. Destek talebi, WhatsApp, Discord ve canlı destek penceresinden 7/24 bize ulaşabilirsiniz.
Hosting hesapları her gece kendiliğinden yedeklenir, son üç günün kopyası saklanır. Bu bir güvenlik ağıdır, yedek planınızın yerini tutmaz; veritabanı dökümünü ve kodu kendiniz de saklayın.
Ödeme kartla (iyzico), havale/EFT ile ya da bakiyeden yapılır; onaylanınca hesap otomatik açılır. Kurulum otomatik olduğundan para iadesi yapılmaz. Yenileme ödemesi geciken hizmet askıya alınır; iki gün içinde ödeme gelmezse hizmet iptal edilir ve veriler silinir (iade ve iptal politikası).