Uygulamalar: Node.js, Python ve diğer diller
Kullanıcı, paneldeki Uygulamalar sayfasından Node.js, Next.js, Python, Ruby, Go, Java, .NET, statik ya da özel komutlu bir uygulama oluşturur; bipanel kurulum ve derleme komutlarını hesap kullanıcısı olarak çalıştırır, süreci yerel bir portta başlatıp denetler ve bağlı alan adını web sunucusu üzerinden bu porta yönlendirir. Uygulamalar Topluluk sürümünde de vardır; kopyalar ve önizleme ortamları Pro içindir.
Bu sayfada
#Desteklenen çalışma zamanları
Kullanıcı panelinde Yazılım → Uygulamalar sayfasından oluşturulabilen türler:
| Tür | Araç zinciri | Varsayılan başlatma komutu |
|---|---|---|
| Next.js | Node.js | next start -p $PORT -H 127.0.0.1 |
| Node.js | Node.js | package.json içindeki start betiği, yoksa node server.js veya node index.js |
| Python | Python (sanal ortam .venv) | Gunicorn; FastAPI projelerinde Uvicorn |
| Ruby | Ruby, Bundler | Puma, Rails sunucusu ya da rackup |
| Go | Go | Derlenen ikili dosya |
| Java | Eclipse Temurin JDK | Yürütülebilir JAR |
| .NET | .NET SDK | Derlenen uygulama |
| Statik | Node.js (yalnızca derleme için) | Yok; derleme çıktısı doğrudan sunulur |
| Özel | Node.js ve sistem araçları | Sizin yazdığınız komut |
Uygulama dizinini seçtiğinizde bipanel projeyi inceler ve türü, çatıyı ve komutları önerir. Sırayla Gemfile, go.mod, pom.xml/build.gradle, *.csproj, package.json, requirements.txt/pyproject.toml, tek başına bir *.jar ve index.html dosyalarına bakar. Next.js, Vite, Angular, Astro, Express, NestJS, Django, Flask, FastAPI, Rails ve Sinatra gibi çatılar tanınır; önerilen komutları kaydetmeden önce değiştirebilirsiniz.
#Sürümleri yönetici kurar
Sunucu yöneticisi Node.js sürümlerini Sunucu Yönetimi → Yazılım → Node.js sürümleri ekranından, Python, Go, Java, Ruby ve .NET sürümlerini Sunucu Yönetimi → Yazılım → Dil çalışma ortamları ekranından kurar. İndirilen her dosya yayıncının yayımladığı sağlama değeriyle doğrulanır; sağlaması olmayan dosya kurulmaz. Kullanıcı uygulama için kurulu sürümlerden birini seçer; seçmezse sunucunun varsayılanı kullanılır. Bir dil sunucuda hiç kurulu değilse o türde uygulama oluşturulamaz ve panel bunu açıkça bildirir. Ruby kaynaktan derlendiği için derleyici içermeyen bir konteyner imajında panelden kurulamaz.
Hesabın kendi Perl modülleri, Ruby gem'leri ve Python sanal ortamları için kullanıcı panelinde Yazılım → Perl, Ruby ve Python Paketleri sayfası vardır.
#Uygulama oluşturma ve dağıtım
Yeni uygulamada şu alanlar bulunur:
- Ad: küçük harf, rakam ve tire; en fazla 40 karakter.
- Dizin: ev dizini içinde bir yol (varsayılan
apps/<ad>); ev dizininin kendisi olamaz. - Kurulum, derleme ve başlatma komutları: başlatma komutu tek satırdır ve statik dışındaki türlerde zorunludur. Statik türde derleme çıktısı dizini (varsayılan
dist) belirtilir. - Ortam değişkenleri: en fazla 200 değişken.
PORT,HOME,USER,PATHveBIPANEL_ile başlayan birkaç ad panel tarafından ayarlanır, elle verilemez. - Alan adları: uygulamaya bağlanacak alan ve alt alan adları; takma alan adları bağlanamaz, üst alan adı seçilir.
Uygulamaya 127.0.0.1 üzerinde 10000–19999 aralığında boş bir port atanır ve PORT değişkeniyle iletilir. Uygulamanız yalnızca bu adreste ve bu portta dinlemelidir; önerilen komutlar bunu zaten yapar. Hesap başına uygulama sayısı paketteki uygulama sınırıyla belirlenir.
#Git ile dağıtım
Kod, Dosyalar → Git Sürüm Kontrolü sayfasında klonlanan bir depodan gelebilir. Depo uygulamaya bağlandığında her dağıtım önce depoyu günceller, ardından kurulum ve derleme komutlarını çalıştırır. Otomatik dağıtım açıksa depo sağlayıcısının webhook'u imzası doğrulanarak kabul edilir ve push ile dağıtım başlar. Depoya isteğe bağlı bir dağıtım betiği de yazılabilir; betik hesap kullanıcısı olarak çalışır.
Yönetici Sunucu Yönetimi → Yazılım → Git entegrasyonları ekranında GitHub, GitLab, Bitbucket ve Gitea için sağlayıcı uygulamalarını tanımlarsa kullanıcılar hesaplarını bağlayıp depoyu listeden seçebilir. Bu durumda dağıtım anahtarı ve webhook sağlayıcıda kendiliğinden oluşturulur, depo kaldırılınca ikisi de silinir.
#Kesintisiz dağıtım, sürümler ve geri alma
Varsayılan strateji kesintisiz dağıtımdır:
- Kaynak yeni bir sürüm dizinine kopyalanır, kurulum ve derleme orada çalışır; canlı sürüme dokunulmaz.
- Yeni sürüm boştaki yuvada kendi portunda başlatılır ve sağlık denetiminden geçmesi beklenir. Geçemezse yeni süreç kapatılır, canlı sürüm etkilenmez.
- Web sunucusu yeni porta çevrilir, eski süreç kısa bir boşaltma süresinden sonra (varsayılan 10 sn) durdurulur.
Varsayılan olarak son 3 sürüm saklanır (1–30 arası ayarlanabilir) ve bunlardan birine derleme yapmadan geri dönülebilir. Sürümler arasında korunması gereken dizin ve dosyalar (yüklemeler, .env gibi) ortak yol olarak tanımlanır. Yerinde strateji seçilirse komutlar doğrudan uygulama dizininde çalışır ve geri alma kullanılamaz.
#Süreç denetimi ve günlükler
Uygulama süreci her zaman hesap kullanıcısının kimliğiyle çalışır ve Başlat, Durdur, Yeniden başlat ve Dağıt düğmeleriyle yönetilir.
| Konu | Sunucu kurulumu (native) | Docker / Railway konteyneri |
|---|---|---|
| Süreç yöneticisi | Her örnek için bir systemd birimi | bipanel'in yerleşik süreç yöneticisi |
| Çökünce | 3 sn sonra yeniden başlatılır | Artan beklemeyle yeniden başlatılır |
| Kaynak sınırları | Hesabın systemd diliminde paketin bellek, CPU ve süreç sınırları | systemd dilimi yok |
| Günlük dosyası | /var/log/bipanel/apps/ | Veri dizinindeki logs/apps/ |
Uygulamanın standart çıktısı ve hata çıktısı hesaba ve uygulamaya özel bir günlük dosyasına yazılır. Panelde son 10–5000 satır (varsayılan 300) görüntülenebilir ve günlük temizlenebilir. Her dağıtımın kendi günlüğü dağıtım geçmişinde ayrıca tutulur. Hesap askıya alındığında uygulamaları durdurulur, askı kalkınca etkin olanlar yeniden başlatılır.
#Sağlık denetimi
Varsayılan denetim TCP'dir (port bağlantısı); isterseniz bir yol ve beklenen durum kodu aralığıyla (varsayılan 200-399) HTTP denetimi seçebilir ya da denetimi kapatabilirsiniz. Varsayılan aralık 30 sn, zaman aşımı 5 sn'dir. Art arda 3 kez başarısız olan örnek otomatik olarak yeniden başlatılır; tekrarlayan yeniden başlatmalar giderek seyrekleşir ve durum değişiklikleri bildirim olarak gelir.
#Web sunucusu arkasında uygulamalar
Bağlı alan adı Apache sanal sunucusunda 127.0.0.1:<port> adresine ters vekil ile yönlendirilir. WebSocket bağlantıları geçer, Let's Encrypt doğrulama yolu uygulamaya gönderilmez ve uygulama yanıt vermediğinde 503 bakım sayfası gösterilir. Nginx ön uç ve OpenLiteSpeed kullanan sunucularda yapılandırma aynı veriden üretilir. SSL sertifikası alan adına normal sitelerdeki gibi verilir. Ayrıntılar için Web sunucusu ve önbellek sayfasına bakın.
Statik türde süreç çalışmaz; derleme çıktısı dizini doğrudan belge kökü olarak sunulur.
#Pro özellikleri
- Kopyalar ve yük dengeleme: bir uygulama birden fazla örnekle ayrı portlarda çalıştırılır, Apache yük dengeleyicisi trafiği dağıtır (istek sayısına ya da yoğunluğa göre, isteğe bağlı oturum yapışkanlığıyla). Sıralı yeniden başlatma da buradadır. Pakette "Uygulama kopyaları" özelliği açık olmalıdır; sunucu geneli kopya sınırı varsayılan 4'tür.
- Önizleme ortamları: kullanıcı panelinde Yazılım → Önizleme Ortamları sayfası. Bir çekme isteği ya da dal için
pr-<numara>.<alan adı>biçiminde ayrı bir alt alan adında, kendi portu ve ortam değişkenleriyle ayrı bir kopya açılır; istenirse boş ya da üretimden kopyalanmış bir veritabanı eklenir. Adres sağlayıcıya commit durumu ve yorum olarak yazılır, istek kapanınca ortam kaldırılır. Deponun dağıtım betiği önizlemede çalıştırılmaz.
Sürüm farkları için Fiyatlar sayfasına bakın.
#Kullanıcı ve yönetici neler yapabilir
| İşlem | Kullanıcı | Yönetici |
|---|---|---|
| Uygulama oluşturma, komutlar, ortam değişkenleri, alan adı bağlama | Evet | Hesaba giriş yaparak |
| Dağıtım, geri alma, günlükler, sağlık ayarları | Evet | Hesaba giriş yaparak |
| Node.js ve dil sürümlerini kurma, varsayılanı belirleme | Hayır | Evet |
| Git sağlayıcı uygulamalarını tanımlama | Hayır | Evet |
| Tüm hesapların uygulama ve dağıtım özeti | Hayır | Sunucu Yönetimi → Yazılım → Uygulama dağıtımı |
| Sunucu geneli sınırlar (en fazla kopya, saklanan sürüm, en kısa denetim aralığı) | Hayır | Evet |
| Paket sınırları (uygulama sayısı, bellek, CPU) | Hayır | Paketler ekranında |
Hazır uygulamaları tek tıkla kurmak için Uygulama kataloğu, Docker imajlarından çalışan uygulamalar için Konteynerler, uygulama süreçlerinin hesaplar arasında nasıl ayrıldığı için Hesap yalıtımı sayfalarına bakın.
Bu sayfada eksik ya da hatalı bir bilgi mi var? Bize yazın.