Web Siteleri
Git'ten bir Site Dağıtma
Git Deploy connects a repository to a site so that every push to your chosen branch clones the code, runs your build, and publishes the result. This guide covers the initial connection, the two…
Git Deploy bir depoyu bir siteyle bağlayarak yapılandırılmış dalınıza yapılan her gönderide kodu klonlar, yapınızı çalıştırır ve sonucu yayımlar. Bu kılavuz ilk bağlantıyı, kurulumu tamamlayan iki depo tarafı adımını, dağıtım geçmişini okumayı ve Node.js uygulamasının nasıl inşa edileceğine karar veren buildpack tespitini kapsar.
Git Deploy Nerede Bulunur
Websites bölümünü açın, siteyi tıklatın, site sekme şeridinde Advanced menüsünü açın ve Git Deploy seçeneğini seçin. Aynı menüde iki ilişkili sayfa bulunur:
- Deploys, bu site için tam dağıtım geçmişi.
- Buildpack, tespit edilen derleme stratejisi, Node.js sitelerinde.
Git Deploy sayfası kendini açık bir şekilde açıklar: bir depoyu bağlayın ve yapılandırılmış dalınıza yapılan her gönderim bir derleme ve dağıtımı tetikler.

Depoyu Bağlama
- Provider seçin: GitHub, GitLab veya Bitbucket.
- Repository URL girin. İstediğiniz form SSH formudur, örneğin
git@github.com:user/repo.git. - Branch öğesini dağıtılacak dala ayarlayın. Alan
mainkonumunda başlar. - İsteğe bağlı olarak Build command ayarlayın, örneğin
npm run build. - İsteğe bağlı olarak Output directory ayarlayın, örneğin
dist,publicveya.zaten inşa edilmiş bir depo için. - Connect repo öğesini tıklatın.
Deponuz olduğu gibi zaten dağıtılabilir durumdaysa (düz PHP veya statik bir site için yaygın olan durum) derleme komutunu ve çıkış dizinini boş bırakın.
Advanced Scripts
Advanced seçeneğini genişletmek iki ekstra alan ortaya çıkarır:
- Pre-deploy script, derlemeden önce çalışır.
- Post-deploy script, dağıtımdan sonra çalışır.
Yeni kod yerinde olduğunda meydana gelmesi gereken işlemler için post-dağıtım kancasını kullanın: uygulama önbelleğini temizleme, veritabanı göçü çalıştırma, bir çalışanı yeniden başlatma.
Auto-Deploy On Push
Kartın altındaki geçiş, gönderimlerin dağıtım yapıp yapmadığını kontrol eder. Açık durumdayken, yapılandırılmış dala yapılan her gönderim bir dağıtımı tetikler. Kapalı durumdayken, dağıtımlar yalnızca Deploy now ile manuel olarak tetiklediğinizde çalışır.
Depoyu bağlantısını kesmek yerine kod dondurması veya bir olayda otomatik dağıtımı kapatın. Depoyu bağlantısını kesmek dağıtım anahtarını ve webhook gizli anahtarını atıp atar, bu nedenle daha sonra her iki depo tarafı adımını yeniden yapmanız gerekir.
Deponuzda Kurulumu Tamamlama
KPanel'de depoyu bağlamak yalnızca üç adımın ilkidir. Bir dağıtım çalıştırılana kadar, sayfa Complete setup: 2 steps remaining (Kurulumu Tamamla: 2 adım kaldı) başlığı gösteren bir baner gösterir ve ihtiyacınız olan her şeyi içerir.
Step 2: Deploy Key Ekle
Kapsule deponuzu klonlamak için okuma erişimine ihtiyaç duyar. Banner bir Copy key düğmesi ile bir ortak anahtar gösterir.
Bunu deponuzun dağıtım anahtarlarına yapıştırın. GitHub için banner, doğru ayarlar sayfasına doğrudan Add to GitHub kısayolunu sunmaktadır. Okuma erişimi yeterlidir; yazma izni vermeyin.
Step 3: Webhook Ekle
Webhook, Kapsule'ye bir gönderim olduğunu söyleyen şeydir. Banner size üç değer verir:
| Field | Value |
|---|---|
| Payload URL | /api/git-deploy/webhook/ ile biten ve bu sitenin kimliğini içeren bir URL |
| Secret | Oluşturulmuş bir imzalama gizli anahtarı, göz simgesini tıklayana kadar gizli |
| Content Type | application/json |
Her birini deponuzun webhook ayarlarına kopyalayın. GitHub için bir Add webhook to GitHub kısayolu vardır. İçerik türünü form kodlanmış varsayılan değil JSON olarak ayarlayın, aksi takdirde yük ayrıştırılmayacaktır.
Webhook gizli anahtarını bir parola gibi işleyin. Bunu artı yük URL'sini herhangi biri sitenizin bir dağıtımını tetikleyebilir. Her iki değer de siteyi yönetebilen kişilere yalnızca gösterilir ve gizli anahtar, siz isteyene kadar göz simgesinin arkasında gizli kalır.
Manuel Olarak Dağıtma
Git Deploy sayfasında Deploy now öğesini tıklatarak yapılandırılmış dalın geçerli başını itme işlemi olmadan derleyin ve dağıtın. Otomatik dağıtım açık olup olmadığına bakılmaksızın bu işe yarar, bu da onu dondurma sırasında doğru araç yapar: göndermeler yoksayılır, ancak yine de düzeltmeyi gönderebilirsiniz.
Deploy History Okuma
Advanced öğesini açın, ardından Deploys seçeneğini açın. Sayfa Deploy history başlıklıdır ve webhook veya manuel tarafından tetiklenen her dağıtımı (en yeni önce) listeler.
Her satır taşır:
- Bir durum simgesi ve dal olarak bir hap ile kısa işleme SHA.
- İşleme mesajı veya gösterilecek işleme mesajı yoksa Manual deploy.
- Yazar, ne kadar zaman önce çalıştırıldığı, ne kadar sürdüğü ve onu ne tetiklediği.
- Bir durum hapı.
Durumlar pending, building, deploying, success ve failed şeklindedir. Herhangi bir şey havada iken sayfa her beş saniyede bir kendisini yeniler ve tablo altında bir Refreshing automatically notu gösterir, böylece onu açık bırakabilir ve bir dağıtımın inişini izleyebilirsiniz.
Dağıtım Başarısız Olduğunda
Başarısız bir satır sağda bir Error düğmesi alır. Sayfayı terk etmeden yakalanmış hata çıkışını satır içinde genişletmek için tıklatın. Bu çıktı, derlemenin kendi hata metnidir, bu nedenle genellikle başarısız olan dosyayı veya komutu adlandırır.
Bunu bu sırayla çalışın: hatayı okuyun, aynı derleme komutunu yerel olarak yeniden oluşturun, düzeltin, gönderin. Derleme yerel olarak işe yarıyorsa ancak burada değilse, fark neredeyse her zaman bir ortam farkıdır, makinenizde global olarak yüklü eksik bir bağımlılık veya çalışan dizininizde olan ancak taahhüt edilmeyen bir dosyadır.
Buildpack Detection
Node.js sitelerinde, Advanced menüsündeki Buildpack sayfası Kapsule'nin uygulamanızı nasıl oluşturmaya karar verdiğini gösterir. Algılama depo kökündeki dosyalar üzerinde çalışır ve ilk eşleşme kazanır:
| Detected | Trigger |
|---|---|
| Custom buildpack | Kökte kapsule.config.yaml veya kapsule.config.yml |
| Dockerfile buildpack | Kökte Dockerfile |
| Node.js | package.json ile start, build veya dev betiği |
| Python | requirements.txt veya pyproject.toml |
| PHP | composer.json |
| Static | Kökte index.html |
Hiçbir şey eşleşmezse, sayfa bunu söyler ve desteklenen tetikleyicileri listeler. Derlemeyi açıkça kontrol etmek için Dockerfile veya kapsule.config.yaml ekleyin.
Derleme Çalıştırma
Bir taneyi sıraya koymak için Run build öğesini tıklatın. Sayfa, bir çalışma uçurken her üç saniyede bir yoklar ve Recent builds tablosu son çalışmaları başlangıç saati, türü, durumu, süresi ve ortaya çıkan görüntü başvurusu ile gösterir. Günlük kuyruğunu görmek için bir satırı tıklatın.
Aynı anda yalnızca bir derleme başında olabilir. Sıraya alınan veya çalışan birine göre ikinci bir tetikleyeme A build is already in progress ile reddedilir, bu kasıtlıdır: aynı çıktıya yazılan iki derleme, yarı dağıtılan bir siteyi nasıl aldığınızdır.
Bağlantısını Kesme
Disconnect öğesini tıklatın ve onaylayın. Onay, patlamanın etki alanı hakkında açıktır: Git dağıtım yapılandırması ve dağıtım anahtarı kaldırılır ve site dosyalarınız etkilenmez. Site, son dağıtılan her şey sunmaya devam eder.
Sonrasında deponuzun ayarlarında dağıtım anahtarını ve webhook'u silerek temizleyin. Onlar basitçe çalışmayı durdururlar, ancak ölü girişleri bırakmak sonraki auditi daha zor hale getirir.
Troubleshooting
Pushes do not trigger anything. Otomatik dağıtım geçişini önce kontrol edin, ardından deponuzda webhook'u kontrol edin. Çoğu sağlayıcı son gönderileri ve yanıt kodlarını gösterir, bu size isteğin deponuzdan ayrıldığını hemen söyler.
Cloning fails. Dağıtım anahtarı eksiktir, satır sonuna yapıştırılmıştır veya yanlış depoya eklenmiştir. Copy key düğmesiyle metni elle seçmek yerine tekrar kopyalayın.
The deploy succeeds but the site does not change. Çıkış dizini muhtemelen yanlıştır. Yapınız dist öğesine yazarsa ve çıkış dizini boşsa, inşa edilen dosyalar sunulan kökü hiçbir zaman ulaşmaz.
Everything says pending and never moves. Dağıtım sıraya alındı ancak asla alınmadı. Manual Deploy now öğesini tetikleyin ve hata satırı için Deploys sayfasını kontrol edin.
Where To Go Next
- Preview Deploys For Pull Requests bu kurulumun üzerine PR başına URL ekler.
- Storing App Secrets For a Site derlemek ve çalışma zamanında gereksinim duyulan kimlik bilgileri için.
- Site Activity Log burada yapılan yapılandırma değişikliklerini kaydeder.