Node.js (Express) Projelerini Saniyeler İçinde Deploy Edin

Flyway ile Node.js ve Express.js API'lerinizi sıfır yapılandırma (zero-config) ile canlıya alın. Node.js deploy nasıl yapılır, Express port hatası ve TypeScript build adımları rehberi.

Node.js (Express) Projelerini Saniyeler İçinde Deploy Edin

Node.js deploy nasıl yapılır? Modern web API'lerinin omurgası olan Node.js ve Express.js ekosistemini canlıya almak bazen karmaşık sunucu yapılandırmaları gerektirebilir. Ancak Flyway ile Express.js hosting ve deploy süreçleri tamamen otomatikleştirilmiştir.

Heroku, Railway veya Vercel gibi platformların aksine Flyway; projenizi GitHub üzerinden analiz eder, sıfır yapılandırma (zero-config) prensibiyle saniyeler içinde derler ve SSL sertifikalı olarak tamamen size ait izole bir ortamda canlıya alır. Üstelik karmaşık Procfile veya Dockerfile yazmanıza gerek kalmaz.

Okuma Süresi: 7 Dakika
Dil & Ortam: Node.js (TypeScript)
Önerilen DB: PostgreSQL, Redis

1. Ön Koşullar (Prerequisites)

Projenizi Flyway üzerinde canlıya almadan önce aşağıdaki gereksinimleri karşıladığınızdan emin olun:

  • ✅ Projeniz bir GitHub, GitLab veya Bitbucket deposunda (repository) yüklü olmalıdır.
  • ✅ Projenizin kök dizininde geçerli bir package.json dosyası bulunmalıdır.
  • ✅ Flyway hesabınıza giriş yapmış ve GitHub entegrasyonunu tamamlamış olmalısınız.

2. Node.js Sürümünün Belirlenmesi (Engines)

Production ortamında en sık karşılaşılan hatalardan biri, lokaldeki Node.js sürümü ile sunucudaki sürümün uyuşmazlığıdır. Flyway varsayılan olarak güncel LTS sürümünü (örneğin Node 20.x) kullanır. Ancak projeniz spesifik bir Node sürümüne ihtiyaç duyuyorsa, bunu package.json dosyanızdaki engines alanında belirtebilirsiniz.

package.json (Örnek Node 18 Belirtimi)
{
  "name": "my-api",
  "engines": {
    "node": "18.x" // Flyway bu sürüme uygun imajı kullanır
  }
}

3. Start Scripti ve TypeScript Build Adımları

Flyway, Node.js projenizi ayağa kaldırmak için doğrudan package.json dosyanızdaki start ve build scriptlerini tetikler. Geliştirme ortamında kullandığınız nodemon veya ts-node-dev gibi araçlar production ortamında kullanılmamalıdır.

Standart JavaScript Projeleri İçin

package.json
"scripts": {
  "start": "node index.js", // Flyway projeyi bu komutla başlatır
  "dev": "nodemon index.js"
}

TypeScript Projeleri İçin (Önemli)

Günümüzde çoğu yeni Express projesi TypeScript ile yazılmaktadır. TypeScript kodunuz doğrudan sunucuda çalıştırılamayacağı için (performans kaybı yaşatır), önce derlenmesi (build) gerekir. Flyway, deponuzda bir build scripti görürse bunu otomatik olarak çalıştırır.

package.json (TypeScript Setup)
"scripts": {
  "build": "tsc", // 1. Flyway önce derlemeyi (build) yapar
  "start": "node dist/index.js", // 2. Flyway derlenmiş JS dosyasını çalıştırır
  "dev": "ts-node-dev src/index.ts"
}

4. Port Dinleme Kuralları (Hayati Önem Taşır)

Node.js projelerinin PaaS sistemlerinde çökmesinin en büyük nedeni yanlış port dinleme ayarlarıdır. Flyway (ve modern bulut sistemleri), uygulamanıza rastgele dinamik bir port atar ve trafiği o porta yönlendirir.

Yanlış Kullanım (Hardcoded Port)

Uygulamanızı sabit bir porta (örneğin 3000) veya sadece localhost'a (127.0.0.1) bağlamamalısınız. Bu durum uygulamanızın dış dünyadan kopmasına neden olur.

app.listen(3000); // Flyway'de ÇALIŞMAZ!
Doğru Kullanım (Dinamik Port)

Uygulamanız mutlaka process.env.PORT değişkenini okumalı ve 0.0.0.0 host adresini dinlemelidir.

const port = process.env.PORT || 3000;
const host = '0.0.0.0';

app.listen(port, host, () => {
  console.log(`Server running on ${host}:${port}`);
});

5. Ortam Değişkenleri (.env) Yönetimi

Uygulamanızın kullandığı veritabanı şifreleri, API anahtarları veya JWT secret key'leri gibi hassas verileri asla kodunuzun içine (hardcoded) veya GitHub'daki .env dosyanıza yazmamalısınız. Tüm bu verileri Flyway panelindeki "Environment Variables" sekmesinden güvenle ekleyebilirsiniz.

Flyway paneli üzerinden ortam değişkenlerinizi kolayca yönetin.
Flyway paneli üzerinden ortam değişkenlerinizi kolayca yönetin.

6. Log Görüntüleme ve Debugging (Crash Loop)

Bazen projeniz başarıyla deploy edildiği halde sürekli yeniden başlama (Crash Loop) durumuna girebilir. Node.js uygulamanız çöktüğünde hatanın ne olduğunu anlamanın tek yolu logları okumaktır.

  • Flyway proje kontrol panelinize gidin.
  • Üst menüden Logs sekmesine tıklayın.
  • Canlı (Real-time) olarak uygulamanızın console.log() ve hata çıktılarını izleyin. Veritabanı bağlantı hataları veya eksik modül hatalarını burada anında görebilirsiniz.

7. Sorun Giderme ve Sık Sorulan Sorular

Sık Sorulan Sorular (Kavramsal)

Node.js deploy nasıl yapılır?

Flyway üzerinde "Yeni Proje" oluşturup GitHub deponuzu seçmeniz yeterlidir. Flyway projenizin Node.js olduğunu algılar, bağımlılıkları kurar ve SSL dahil yayına alır.

Sorun Giderme Tablosu (Hatalar ve Çözümler)

Web process failed to bind to $PORT
Olası Neden: Uygulamanız statik bir port (örn. 3000) dinliyor.
Çözüm: Kodunuzu app.listen(process.env.PORT || 3000, '0.0.0.0') olarak güncelleyin.
Missing start script
Olası Neden: package.json dosyasında "start" komutu yok.
Çözüm: "scripts" bloğuna "start": "node index.js" ekleyin.
Cannot find module 'express'
Olası Neden: Paket devDependencies içinde kurulmuş.
Çözüm: Modülü dependencies bloğuna taşıyıp yeniden commit atın.

İlgili Makaleler

Hazırsınız! 🚀

Tüm bu ayarlardan sonra projenizi pushlamanız yeterli. Flyway, saniyeler içinde uygulamanızı derler ve özel alan adınızda (Domain) yayına alır.

Son güncelleme: 20 Temmuz 2026
Bu sayfayı GitHub'da düzenle