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 | İzin | Ne yapar |
|---|---|---|
GET /api/deployments | deployment:list | Kuruluştaki deployment'ları listeler (isteğe bağlı olarak ?projectId= ile filtreler). |
POST /api/deployments | deployment:write | Git tabanlı deploy — zaten bağlı bir projeyi git kaynağından yeniden deploy eder. |
POST /api/deployments/prepare | deployment:write | Deploy etmeden önce bir git deposu veya yerel yol için stack / build yapılandırmasını algılar. |
POST /api/deployments/build/access | deployment:write | Sihirbazın Deploy eylemi — derlemeyi + deployment'ı başlatır (git veya klasör yüklemesi). |
POST /api/deployments/ssl/status | deployment:read | Bir domain'in SSL sertifika durumunu kontrol eder (yan etkisi yoktur). |
POST /api/deployments/ssl/renew | deployment:write | Bir domain'in SSL sertifikasını yeniler. |
GET /api/deployments/:id | deployment:read | ID'ye göre bir deployment'ı alır — durum, URL'ler, zamanlama, hata özeti. |
GET /api/deployments/:id/logs | deployment:read | Bir deployment'ın derleme / çalışma zamanı loglarını getirir. |
GET /api/deployments/:id/stream | deployment:read | Derleme / deploy loglarını ve olaylarını canlı olarak stream eder (SSE). |
GET /api/deployments/:id/build | deployment:read | Bu deployment için derleme oturumu durumunu alır. |
POST /api/deployments/:id/build | deployment:write | Sı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/respond | deployment:write | Bir derleme kapısına / istemine yanıt verir (örn. bir adımı onaylar). |
POST /api/deployments/:id/redeploy | deployment:write | Bu proje için en son deployment'ı yeniden çalıştırır. |
POST /api/deployments/:id/rollback | deployment:write | Bu deployment'ın artifact'ına / commit'ine geri döner. |
POST /api/deployments/:id/pin | deployment:write | Bu deployment'ı pinler (veya pinini kaldırır), böylece temizlik onu geri almaz. |
POST /api/deployments/:id/cancel | deployment:write | Devam eden bir deployment'ı iptal eder. |
POST /api/deployments/:id/keep | deployment:write | Kısmi başarısız bir deployment'ı karar beklerken tutar (başarılı olan servisleri kabul eder). |
POST /api/deployments/:id/reject | deployment:write | Kısmi başarısız bir deployment'ı karar beklerken reddeder (değişen servisleri önceki durumlarına geri alır). |
POST /api/deployments/:id/restart | deployment:write | Bu deployment için çalışan container'ları yeniden başlatır. |
GET /api/deployments/:id/info | deployment:read | Bu deployment için container bilgilerini alır. |
GET /api/deployments/:id/usage | deployment:read | Bu deployment için container CPU / bellek kullanımını alır. |
DELETE /api/deployments/:id | deployment:admin | Bir 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/deploymentsProp
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 mainHazı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/prepareProp
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/accessProp
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/redeployalaf 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/pinalaf server deployment rollback <deploymentId>
alaf server deployment pin <deploymentId>Çalışan bir deploy'u iptal etme
POST /api/deployments/:id/cancelalaf 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/rejectalaf 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/renewProp
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.comGö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.
Projeler API'si
Projeler oluşturun ve yapılandırın, bir git deposu bağlayın, ortam değişkenlerini ve kaynakları yönetin, logları okuyun, yüklenmiş bir klasörü deploy edin ve projeleri Alaf Server Cloud'a ve Alaf Server Cloud'dan transfer edin.
Servisler API'si
Bir projenin içindeki servisleri (compose servisleri ve monorepo alt uygulamaları) yönetin — CRUD, compose'dan senkronizasyon, container eylemleri, drift çözümü ve ortam değişkenleri dahil.