Deploy
Repo'n neye ihtiyaç duyar, deploy nasıl ilerler.
Desteklenen runtime
Şu an yalnızca Node.js / Next.js destekleniyor. Python, Go, PHP, Rust gibi diğer runtime'lar planlanıyor ama bu sürümde yok.
İki deploy modu
- Hazır image — bir container registry'den image referansı verirsin (
--image/ dashboard "Hazır image"). Build adımı atlanır, doğrudan deploy edilir. - Repo'dan build — bir https git repo URL'i verirsin (
--repo/ dashboard "Repo'dan build"). Repo klonlanır, framework algılanır, container image otomatik üretilir.
Next.js repo gereksinimleri
Build motoru standalone çıktıyı kopyalar. Bu yüzden next.config.js (veya .ts) içinde şunu ayarlaman gerekir:
/** @type {import('next').NextConfig} */
module.exports = {
output: 'standalone',
};Bu ayar olmadan build başarısız olur — motor .next/standalone ve .next/static dizinlerini bekler.
output: 'standalone' eksikse deploy Başarısız durumuna düşer. Build log'larında hatayı görürsün.Düz Node.js repo gereksinimleri
package.jsoniçindekistartscript'inode ...ile çalışmalı — motornpm startçalıştırır.- Sunucun
PORTortam değişkenini dinlemeli ve0.0.0.0'a bind olmalı (yalnızlocalhostdeğil).
Güvenlik: non-root çalışma
Üretilen image'lar her zaman non-root (UID 10001) çalışır — bunu motor otomatik ayarlar, repo'nda ekstra bir şey yapmana gerek yok. Container'ının 1024 altı porta bind olmasına gerek yoksa (genelde Next.js/Node için gerekmez) bu kısıtlama seni etkilemez.
Repo URL kısıtları
--repo yalnızca genel (public) bir https git URL'i kabul eder. İç ağ, link-local ve localhost adresleri reddedilir — bu bir güvenlik önlemi, kullanıcı hatası değil.
Deploy yaşam döngüsü
- Sırada — istek alındı, kuyrukta bekliyor.
- Build ediliyor — yalnızca repo modunda: klonlama + image üretimi.
- Deploy ediliyor — image container'a yerleştiriliyor.
- Canlı — sağlık kontrolü geçti, URL hazır.
- Başarısız — build veya deploy hata verdi; log'larda detay var.
- İptal — deploy iptal edildi.
Logları görüntüleme
Build logları — geçmiş, yakalanmış kayıtlar. Dashboard'da deploy geçmişinde, API'de GET /api/deployments/:id/build-logs.
Runtime logları — canlı akış (SSE). Dashboard'da "Loglar" butonu, terminalde deppul logs -f.
Subdomain ve SSL
Her canlı deploy otomatik bir adres alır: <deployment-id>.deppul.app.
http:// ile döner. Otomatik SSL (Let's Encrypt) prod ortamına geçişte devreye girecek.Free tier limiti
Free tier'da en fazla 1 proje oluşturabilirsin. Limit dolunca proje oluşturma isteği reddedilir; detay için Kavramlar sayfasına bak.