API

Deployments API

Derlemeleri tetikleyin, git'ten veya yüklenmiş bir klasörden deploy edin, ardından bir projenin sürümlerinin yaşam döngüsünü inceleyin, yeniden deploy edin, geri alın ve yönetin.

Deployments API, bir projenin derleme ve sürüm yaşam döngüsünü yönetir: derlemeleri başlatır (bağlı bir git deposundan veya yüklenmiş bir klasörden), durum ve logları raporlar ve sonrasında çalıştırdığınız işlemleri — redeploy, roll back, pin, cancel, restart ve kısmi başarısız compose deploy'u çözme — ele alır. dashboard'da bu, deploy sihirbazı ve Deployments sekmesidir; terminalden ise alaf server deploy ve alaf server deployment komutlarıdır.

Base path & auth

Tüm yollar, örneğin https://your-host/api/deployments gibi, /api altında, kendi instance'ınıza göredir. alaf server token create ile oluşturulmuş bir kişisel erişim token'ını bearer header (Authorization: Bearer <token>) olarak gönderin. dashboard bunun yerine oturum çerezinizi kullanır. Ayrıntılar için API genel bakışına ve kimlik doğrulama modeline bakın.

Available on self-hosted and cloud

Bu modül her instance'a kuruludur. Bir deployment cloud projesine ait olduğunda, deployment başına rotalar (/:id/...) şeffaf bir şekilde Alaf Server Cloud'a proxy edilir; yerel deployment'lar yerinde ele alınır. Her iki durumda da aynı yolları kullanırsınız.

Uç Noktalar

Metot ve yolİzinNe yapar
GET /api/deploymentsdeployment:listKuruluştaki deployment'ları listeler (isteğe bağlı olarak ?projectId= ile filtreler).
POST /api/deploymentsdeployment:writeGit tabanlı deploy — zaten bağlı bir projeyi git kaynağından yeniden deploy eder.
POST /api/deployments/preparedeployment:writeDeploy etmeden önce bir git deposu veya yerel yol için stack / build yapılandırmasını algılar.
POST /api/deployments/build/accessdeployment:writeSihirbazın Deploy eylemi — derlemeyi + deployment'ı başlatır (git veya klasör yüklemesi).
POST /api/deployments/ssl/statusdeployment:readBir domain'in SSL sertifika durumunu kontrol eder (yan etkisi yoktur).
POST /api/deployments/ssl/renewdeployment:writeBir domain'in SSL sertifikasını yeniler.
GET /api/deployments/:iddeployment:readID'ye göre bir deployment'ı alır — durum, URL'ler, zamanlama, hata özeti.
GET /api/deployments/:id/logsdeployment:readBir deployment'ın derleme / çalışma zamanı loglarını getirir.
GET /api/deployments/:id/streamdeployment:readDerleme / deploy loglarını ve olaylarını canlı olarak stream eder (SSE).
GET /api/deployments/:id/builddeployment:readBu deployment için derleme oturumu durumunu alır.
POST /api/deployments/:id/builddeployment:writeSıraya alınmış bir deployment için derlemeyi başlatır (ardından logları SSE aracılığıyla stream eder).
POST /api/deployments/:id/build/responddeployment:writeBir derleme kapısına / istemine yanıt verir (örn. bir adımı onaylar).
POST /api/deployments/:id/redeploydeployment:writeBu proje için en son deployment'ı yeniden çalıştırır.
POST /api/deployments/:id/rollbackdeployment:writeBu deployment'ın artifact'ına / commit'ine geri döner.
POST /api/deployments/:id/pindeployment:writeBu deployment'ı pinler (veya pinini kaldırır), böylece temizlik onu geri almaz.
POST /api/deployments/:id/canceldeployment:writeDevam eden bir deployment'ı iptal eder.
POST /api/deployments/:id/keepdeployment:writeKısmi başarısız bir deployment'ı karar beklerken tutar (başarılı olan servisleri kabul eder).
POST /api/deployments/:id/rejectdeployment:writeKısmi başarısız bir deployment'ı karar beklerken reddeder (değişen servisleri önceki durumlarına geri alır).
POST /api/deployments/:id/restartdeployment:writeBu deployment için çalışan container'ları yeniden başlatır.
GET /api/deployments/:id/infodeployment:readBu deployment için container bilgilerini alır.
GET /api/deployments/:id/usagedeployment:readBu deployment için container CPU / bellek kullanımını alır.
DELETE /api/deployments/:iddeployment:adminBir deployment'ı siler.

rollback ve cancel çalışma zamanında admin yetkisi gerektirir

Rota etiketleri deployment:write olsa da, işleyiciler hedef deployment üzerinde ek olarak deployment:admin yetkisini doğrular (bir rollback depoyu yeniden klonlar). Yalnızca write yetkisine sahip bir çağırıcı rota kontrolünü geçecek ancak daha sonra reddedilecektir. Bu iki işlem için deployment:admin yetkisini verin.

Git deploy'u tetikleme

Zaten bağlı bir projeyi git kaynağından yeniden deploy eder. Bunun yerine yerel bir klasörü deploy etmek için, /build/access ile biten yükleme akışını kullanın.

POST /api/deployments

Prop

Type

curl -X POST https://your-host/api/deployments \
  -H "Authorization: Bearer $ALAFSERVER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"projectId":"proj_123","branch":"main"}'
# CLI'dan aynı işlem:
alaf server deploy --project proj_123 --branch main

Hazırlık (derleme yapılandırmasını algılama)

Yan etkisi yoktur: bir git deposuna veya yerel bir yola işaret edin ve sihirbazın önceden doldurabilmesi için algılanan framework'ü, paket yöneticisini ve derleme/başlatma komutlarını döndürür. Hiçbir şey oluşturmaz.

POST /api/deployments/prepare

Prop

Type

Local kaynak yalnızca self-hosted için geçerlidir

source: "local" cloud modunda 403 ile reddedilir — cloud'un okunacak bir host dosya sistemi yoktur.

Deploy sihirbazı (/build/access)

Sihirbazın Deploy düğmesi. Yeni bir deployment oluşturur ve derlemeyi başlatır. Klasör yükleme deploy'u için, projectId (projects/ensure'dan) ve uploadSessionId (projects/folder/session'dan) geçirin; bir git projesi için projectId ve isteğe bağlı olarak branch geçirin. { success, deployment_id, project_id } döndürür.

POST /api/deployments/build/access

Prop

Type

Her bir publicEndpoints girişi, domainType'ın "free" veya "custom" olduğu { port?, targetPath?, domain?, customDomain?, domainType? } şeklindedir. Bir services girişi, bir compose/monorepo servisini (name, image?, build?, dockerfile?, ports, dependsOn, environment, volumes ve isteğe bağlı uygulama başına derleme alanları) yansıtır.

curl -X POST https://your-host/api/deployments/build/access \
  -H "Authorization: Bearer $ALAFSERVER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"projectId":"proj_123","branch":"main","buildStrategy":"server"}'

Self-hosted üzerinde deployTarget'ı zorlamayın

Self-hosted bir instance'da deployTarget: "cloud" ayarını yapmak, cloud'a yükseltme akışını tetikler. Normal bir klasör yüklemesi için, deployTarget'ı ayarlamayın ve yükleme oturumunun modunun karar vermesine izin verin.

Durum, loglar ve stream alma

GET /api/deployments/:id
GET /api/deployments/:id/logs
GET /api/deployments/:id/stream

/:id, deployment'ın durumunu, URL'lerini, zamanlamasını ve herhangi bir hata özetini döndürür. /logs, kaydedilmiş derleme/çalışma zamanı çıktısını döndürür; /stream, canlı derlemenin bir Server-Sent Events akışıdır — kaldığınız yerden devam etmek için ?since=<seq> imleciyle yeniden bağlanın.

alaf server deployment get <deploymentId>

Yeniden deploy etme

Derlemeyi yeniden çalıştırır. Varsayılan olarak branch'teki en son commit'i çözer (otomatik redeploy semantiği); orijinal deployment'ın kullandığı tam commit'e göre yeniden derlemek için { "useExistingCommit": true } gönderin.

POST /api/deployments/:id/redeploy
alaf server deployment redeploy <deploymentId>

Rollback ve pinleme

Rollback, önceki bir deployment'ın artifact'ını/commit'ini aktif sürüm olarak geri yükler. Pinleme, bir deployment'ı korumalı olarak işaretler, böylece rollback penceresi temizliği tarafından geri alınmaz — POST /:id/pin varsayılan olarak { "pinned": true } değerini alır; pinini kaldırmak için { "pinned": false } gönderin.

POST /api/deployments/:id/rollback
POST /api/deployments/:id/pin
alaf server deployment rollback <deploymentId>
alaf server deployment pin <deploymentId>

Çalışan bir deploy'u iptal etme

POST /api/deployments/:id/cancel
alaf server deployment cancel <deploymentId>

Kısmi başarısız compose deploy'ları: tut veya reddet

Çoklu servis (compose) bir deploy'da bazı servisler başarılı olup diğerleri başarısız olduğunda, partial_failure durumunda decision: pending ("Eylem Gerekli") ile tutulur. Açıkça çözün:

  • Tut (Keep), başarılı olan servisleri kabul eder ve geri kalanları önceki sürümlerinde bırakır.
  • Reddet (Reject), değişen servisleri önceki durumlarına geri alır.
POST /api/deployments/:id/keep
POST /api/deployments/:id/reject
alaf server deployment keep <deploymentId>
alaf server deployment reject <deploymentId>

SSL durumu ve yenileme

Her ikisi de JSON gövdesinde domain'i alır. /ssl/status, yan etkisi olmayan bir probdur (hostname'in gövdede taşınması için yalnızca POST); /ssl/renew sertifikayı yeniden düzenler.

POST /api/deployments/ssl/status
POST /api/deployments/ssl/renew

Prop

Type

curl -X POST https://your-host/api/deployments/ssl/status \
  -H "Authorization: Bearer $ALAFSERVER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain":"app.example.com"}'
alaf server deployment ssl status app.example.com
alaf server deployment ssl renew app.example.com

Görebileceğiniz hatalar

400 — bad request / failed operation

Gerekli bir alan eksik (domain is required, source must be 'github' or 'local') veya işlem çalıştırılamadı (örn. zaten bitmiş bir deployment'ı iptal etme veya karar beklemeyen bir deployment üzerinde tutma/reddetme). Yanıt gövdesi { success: false, error } içerir.

403 — cloud modunda local kaynak

source: "local" ile prepare (veya bir klasör deploy'u) Alaf Server Cloud'da mevcut değildir — bir host dosya sistemi yoktur. Bunun yerine bir git kaynağı kullanın.

Deployment başına rotada 404

Bu :id kuruluşunuza ait değil (veya silinmiş). Geçerli ID'leri almak için GET /api/deployments ile listeleyin.

On this page