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.

KPanel'de Git Deploy yapılandırma sayfası

Depoyu Bağlama

  1. Provider seçin: GitHub, GitLab veya Bitbucket.
  2. Repository URL girin. İstediğiniz form SSH formudur, örneğin git@github.com:user/repo.git.
  3. Branch öğesini dağıtılacak dala ayarlayın. Alan main konumunda başlar.
  4. İsteğe bağlı olarak Build command ayarlayın, örneğin npm run build.
  5. İsteğe bağlı olarak Output directory ayarlayın, örneğin dist, public veya . zaten inşa edilmiş bir depo için.
  6. 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:

FieldValue
Payload URL/api/git-deploy/webhook/ ile biten ve bu sitenin kimliğini içeren bir URL
SecretOluşturulmuş bir imzalama gizli anahtarı, göz simgesini tıklayana kadar gizli
Content Typeapplication/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:

DetectedTrigger
Custom buildpackKökte kapsule.config.yaml veya kapsule.config.yml
Dockerfile buildpackKökte Dockerfile
Node.jspackage.json ile start, build veya dev betiği
Pythonrequirements.txt veya pyproject.toml
PHPcomposer.json
StaticKö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

Hala yardıma mı ihtiyacınız var?

Bize şu adresinden e-posta gönderin: support@kapsulehost.com ya da KPanel'de sohbet açın.

KPanel'i Aç
Git'ten bir Site Dağıtma