Git Dağıtımı, her push işleminde seçtiğiniz dala kodu klonlayan, derlemenizi çalıştıran ve sonucu yayınlayan bir depoyu siteye bağlar. Bu kılavuz ilk bağlantıyı, kurulumu tamamlayan iki depo tarafı adımı, dağıtım geçmişinin okunmasını ve bir Node.js uygulamasının nasıl derleneceğine karar veren buildpack tespitini kapsar.
Git Dağıtımı Nerede Bulunur
Web Siteleri (Siteler) bölümünü açın, siteye tıklayın, sitenin sol menüsünde Environment (Ortam) grubunu açın ve Git Dağıtımı seçeneğini seçin. Yakınında iki ilgili sayfa bulunur:
- Dağıtımlar, aynı Environment grubunda, bu site için tam dağıtım geçmişi.
- Buildpack, Node.js sitelerinde Uygulamalar grubunda, tespit edilen derleme stratejisi.
Git Deploy sayfası kendini açıkça tanımlar: bir depo bağlayın ve yapılandırdığınız dala yapılan her push bir derleme ve dağıtımı tetikler.

Bir Depo Bağlama
- Provider (Sağlayıcı) seçin: GitHub, GitLab veya Bitbucket.
- Depo URL'si alanını girin. İstediğiniz biçim SSH biçimidir, örneğin
git@github.com:user/repo.git. - Hangi daldan dağıtım yapılacağını belirlemek için Branch (Dal) alanını ayarlayın. Alan
mainile başlar. - İsteğe bağlı olarak bir Derleme komutu ayarlayın, örneğin
npm run build. - İsteğe bağlı olarak bir Çıktı dizini ayarlayın, örneğin
dist,publicveya zaten derlenmiş bir depo için.. - Depoyu bağla düğmesine tıklayın.
Depounuz olduğu haliyle zaten dağıtılabilir durumdaysa (düz bir PHP veya statik site için yaygın bir durumdur) derleme komutunu ve çıktı dizinini boş bırakın.
Gelişmiş Script'ler
Gelişmiş bölümünü genişletmek iki ek alan ortaya çıkarır:
- Dağıtım öncesi script, derlemeden önce çalışır.
- Dağıtım sonrası script, dağıtımdan sonra çalışır.
Yeni kod devreye girdikten sonra gerçekleşmesi gereken şeyler için dağıtım sonrası kancayı kullanın: bir uygulama önbelleğini temizlemek, bir veritabanı taşıma işlemini çalıştırmak, bir worker'ı yeniden başlatmak.
Push'ta Otomatik Dağıtım
Kartın altındaki anahtar, push işlemlerinin herhangi bir dağıtımı tetikleyip tetiklemeyeceğini kontrol eder. Açık olduğunda, yapılandırılmış dala yapılan her push bir dağıtımı tetikler. Kapalı olduğunda, dağıtımlar yalnızca Şimdi dağıt ile manuel olarak tetiklediğinizde çalışır.
Bir kod dondurma (code freeze) veya olay (incident) sırasında depoyu bağlantısını kesmek yerine otomatik dağıtımı kapatın. Bağlantıyı kesmek dağıtım anahtarını ve webhook gizli anahtarını geçersiz kılar, bu yüzden sonrasında iki depo tarafı adımı da yeniden yapmanız gerekir.
Deponuzda Kurulumu Tamamlama
Depoyu KPanel'de bağlamak, üç adımdan yalnızca ilkidir. Bir dağıtım çalışana kadar, sayfa ihtiyacınız olan her şeyle birlikte Kurulumu tamamla: 2 adım kaldı yazan bir afiş gösterir.
Adım 2: Dağıtım Anahtarını Ekleme
KapsuleHost'un depunuzu klonlamak için okuma erişimine ihtiyacı vardır. Afiş, Anahtarı kopyala düğmesiyle birlikte genel bir anahtar gösterir.
Bunu deponuzun dağıtım anahtarları bölümüne yapıştırın. GitHub için afiş, doğru ayarlar sayfasına doğrudan giden bir GitHub'a ekle kısayolu sunar. Okuma erişimi yeterlidir; yazma izni vermeyin.
Adım 3: Webhook Ekleme
Webhook, KapsuleHost'a bir push olduğunu bildiren şeydir. Afiş size üç değer verir:
| Alan | Değer |
|---|---|
| Taşıyıcı URL | /api/git-deploy/webhook/ ile biten artı bu sitenin kimliği bulunan bir URL |
| Secret | Göz simgesine tıklayana kadar gizli kalan, oluşturulmuş bir imzalama gizli anahtarı |
| İçerik Türü | application/json |
Her birini deponuzun webhook ayarlarına kopyalayın. GitHub için bir GitHub'a webhook ekle kısayolu bulunur. İçerik türünü, form kodlamalı varsayılan yerine JSON olarak ayarlayın, aksi halde payload ayrıştırılamaz.
Webhook gizli anahtarını bir parola gibi değerlendirin. Buna sahip olan ve payload URL'sine de sahip olan herkes sitenizin bir dağıtımını tetikleyebilir. Her iki değer de yalnızca siteyi zaten yönetebilen kişilere gösterilir ve gizli anahtar, siz istemediğiniz sürece göz simgesinin arkasında gizli kalır.
Elle Dağıtım Yapma
Yapılandırılmış dalın geçerli ucunu bir commit push etmeden derlemek ve dağıtmak için Git Deploy sayfasında Şimdi dağıt düğmesine tıklayın. Bu, otomatik dağıtım açık olsun olmasın çalışır, bu da onu bir dondurma sırasında doğru araç yapan şeydir: push'lar yok sayılır, ancak yine de düzeltmeyi gönderebilirsiniz.
Dağıtım Geçmişini Okuma
Environment (Ortam), ardından Dağıtımlar bölümünü açın. Sayfanın başlığı Dağıtım geçmişi şeklindedir ve webhook tarafından veya elle tetiklenen her dağıtımı, en yeniden en eskiye doğru listeler.
Her satır şunları taşır:
- Bir durum simgesi ve kısa commit SHA'sı, dal bir hap (pill) olarak gösterilir.
- Commit mesajı, veya gösterilecek bir commit mesajı yoksa Manuel dağıtım.
- Yazar, ne kadar süre önce çalıştığı, ne kadar sürdüğü ve neyin tetiklediği.
- Bir durum hapı.
Durumlar şunlardır: pending (beklemede), building (derleniyor), deploying (dağıtılıyor), success (başarılı) ve failed (başarısız). Herhangi bir işlem devam ederken sayfa kendini her beş saniyede bir yeniler ve tablonun altında bir Refreshing automatically (Otomatik olarak yenileniyor) notu gösterir, böylece sayfayı açık bırakıp bir dağıtımın tamamlanmasını izleyebilirsiniz.
Bir Dağıtım Başarısız Olduğunda
Başarısız bir satırın sağında bir Error (Hata) düğmesi bulunur. Sayfadan ayrılmadan, satır içi olarak yakalanan hata çıktısını genişletmek için tıklayın. Bu çıktı, derlemenin kendi hata metnidir, bu yüzden genellikle başarısız olan dosyayı veya komutu adlandırır.
Bunu şu sırayla ele alın: hatayı okuyun, aynı derleme komutunu yerel olarak yeniden oluşturun, düzeltin, push edin. Derleme yerel olarak çalışıyor ama burada çalışmıyorsa, fark neredeyse her zaman bir ortam farkıdır: makinenizde global olarak kurulu olan eksik bir bağımlılık veya çalışma dizininizde olup commit edilmemiş bir dosya.
Buildpack Tespiti
Node.js sitelerinde, Uygulamalar grubundaki Buildpack sayfası, KapsuleHost'un uygulamanızı nasıl derlemeye karar verdiğini gösterir. Tespit, depo kökünüzdeki dosyalar üzerinde çalışır ve ilk eşleşme kazanır:
| Tespit Edilen | Tetikleyici |
|---|---|
| Custom buildpack (Özel buildpack) | Kökte kapsule.config.yaml veya kapsule.config.yml |
| Dockerfile buildpack | Kökte Dockerfile |
| Node.js | start, build veya dev script'ine sahip package.json |
| Python | requirements.txt veya pyproject.toml |
| PHP | composer.json |
| Static (Statik) | Kökte index.html |
Hiçbir şey eşleşmezse, sayfa bunu belirtir ve desteklenen tetikleyicileri listeler. Derleme üzerinde açıkça kontrol sahibi olmak için bir Dockerfile veya bir kapsule.config.yaml ekleyin.
Bir Derleme Çalıştırma
Bir tane sıraya almak için Derlemeyi Çalıştır düğmesine tıklayın. Bir çalıştırma devam ederken sayfa her üç saniyede bir sorgulama yapar ve Son derlemeler tablosu, başlangıç zamanları, türleri, durumları, süreleri ve sonuç görüntü referanslarıyla birlikte son çalıştırmaları gösterir. Günlük (log) kuyruğunu görmek için bir satıra tıklayın.
Aynı anda yalnızca bir derleme çalışabilir. Biri sırada veya çalışırken ikincisini tetiklemek Bir yapı zaten devam ediyor mesajıyla reddedilir, bu kasıtlıdır: aynı çıktıyı aynı anda yazan iki derleme, yarı dağıtılmış bir sitenin nasıl ortaya çıktığıdır.
Bağlantıyı Kesme
Disconnect (Bağlantıyı Kes) düğmesine tıklayın ve onaylayın. Onay, etki alanı konusunda açıktır: Git dağıtım yapılandırması ve dağıtım anahtarı kaldırılır, site dosyalarınız etkilenmez. Site, son dağıtılan her neyse onu sunmaya devam eder.
Ardından deponuzun ayarlarındaki dağıtım anahtarını ve webhook'u silerek işi düzenleyin. Bunlar basitçe çalışmayı durduracaktır, ancak ölü girdileri ortada bırakmak bir sonraki denetimi zorlaştırır.
Sorun Giderme
Push'lar hiçbir şeyi tetiklemiyor. Önce otomatik dağıtım anahtarını, ardından deponuzdaki webhook'u kontrol edin. Çoğu sağlayıcı, son teslimatları ve bunların yanıt kodlarını gösterir, bu da isteğin deponuzdan gerçekten çıkıp çıkmadığını hemen size söyler.
Klonlama başarısız oluyor. Dağıtım anahtarı eksik, içinde bir satır sonuyla yapıştırılmış veya yanlış depoya eklenmiş olabilir. Metni elle seçmek yerine Anahtarı kopyala düğmesiyle yeniden kopyalayın.
Dağıtım başarılı oluyor ama site değişmiyor. Çıktı dizini muhtemelen yanlıştır. Derlemeniz dist konumuna yazıyorsa ve çıktı dizini boşsa, derlenen dosyalar hizmet veren köke asla ulaşmaz.
Her şey beklemede diyor ve hiç ilerlemiyor. Dağıtım sıraya alındı ama hiç işlenmedi. Manuel bir Şimdi dağıt tetikleyin ve bir hata satırı için Deploys sayfasını kontrol edin.
Sırada Ne Var
- Pull Request'ler İçin Önizleme Dağıtımları bu kurulumun üzerine PR başına bir URL ekler.
- Bir Site İçin Uygulama Gizli Anahtarlarını Saklama, derlemenizin ve çalışma zamanınızın ihtiyaç duyduğu kimlik bilgileri için.
- Site Etkinlik Günlüğü, burada yapılan yapılandırma değişikliklerini kaydeder.