Belgeler menüsüUygulamalar

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.

Son güncelleme:

Bu sayfada
  1. Desteklenen çalışma zamanları
    1. Sürümleri yönetici kurar
  2. Uygulama oluşturma ve dağıtım
    1. Git ile dağıtım
    2. Kesintisiz dağıtım, sürümler ve geri alma
  3. Süreç denetimi ve günlükler
    1. Sağlık denetimi
  4. Web sunucusu arkasında uygulamalar
  5. Pro özellikleri
  6. Kullanıcı ve yönetici neler yapabilir

#Desteklenen çalışma zamanları

Kullanıcı panelinde Yazılım → Uygulamalar sayfasından oluşturulabilen türler:

TürAraç zinciriVarsayılan başlatma komutu
Next.jsNode.jsnext start -p $PORT -H 127.0.0.1
Node.jsNode.jspackage.json içindeki start betiği, yoksa node server.js veya node index.js
PythonPython (sanal ortam .venv)Gunicorn; FastAPI projelerinde Uvicorn
RubyRuby, BundlerPuma, Rails sunucusu ya da rackup
GoGoDerlenen ikili dosya
JavaEclipse Temurin JDKYürütülebilir JAR
.NET.NET SDKDerlenen uygulama
StatikNode.js (yalnızca derleme için)Yok; derleme çıktısı doğrudan sunulur
ÖzelNode.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, PATH ve BIPANEL_ 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:

  1. Kaynak yeni bir sürüm dizinine kopyalanır, kurulum ve derleme orada çalışır; canlı sürüme dokunulmaz.
  2. 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.
  3. 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.

KonuSunucu kurulumu (native)Docker / Railway konteyneri
Süreç yöneticisiHer örnek için bir systemd birimibipanel'in yerleşik süreç yöneticisi
Çökünce3 sn sonra yeniden başlatılırArtan 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

İşlemKullanıcıYönetici
Uygulama oluşturma, komutlar, ortam değişkenleri, alan adı bağlamaEvetHesaba giriş yaparak
Dağıtım, geri alma, günlükler, sağlık ayarlarıEvetHesaba giriş yaparak
Node.js ve dil sürümlerini kurma, varsayılanı belirlemeHayırEvet
Git sağlayıcı uygulamalarını tanımlamaHayırEvet
Tüm hesapların uygulama ve dağıtım özetiHayırSunucu 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ırEvet
Paket sınırları (uygulama sayısı, bellek, CPU)HayırPaketler 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.