İçeriğe atla
VDS Panel
VDS Panel
Sunucu Yönetimi
Deploy 20 Nisan 2026 · 8 dk okuma

Node.js Projelerini PM2 ile Production'da Çalıştırmak: Panel Rehberi

Node.js ve Express projelerinizi VPS'te production'a almak için PM2 cluster mode, otomatik restart, memory limit ve log rotation ayarlarını panel üzerinden yapın.

#node.js #pm2 #deploy #express #nestjs
VDS Panel
VDS Panel Ekibi
Ürünü geliştiren ekip

Node.js, tek thread üzerinde event loop ile çalışan bir runtime. Bu mimari API sunucuları için muazzam performanslıdır ama iki sınırı vardır: crash olursa süreç ölür, CPU çekirdek sayısı kadar paralel çalışmaz. PM2, bu iki sınırı aşmak için tasarlanmış bir process manager. Production Node.js deploy’ı için kullanılan araçların başında gelir.

Bu rehberde PM2’nin production’da ne yaptığını, hangi ayarlarını neden önemsediğinizi ve VDS Panel ile bu ayarları nasıl arayüzden yönetebildiğinizi anlatacağız.

Bir bakışta
99.9%
Uptime hedefi
4-8×
Cluster ile throughput
<1sn
Otomatik restart
0
Downtime reload

PM2 ne işe yarıyor?

PM2, Node.js süreçlerinizi “daemonize” eder. Yani:

  • Süreç çöktüğünde yeniden başlatır
  • Birden fazla süreç açıp yük dağıtır (cluster mode)
  • Log’ları dosyaya yazar ve rotate eder
  • Restart’lar arasında kesintisiz trafik yönetir
  • Memory/CPU izler, limitleri aşan süreci yeniden başlatır

systemd ile Node.js çalıştırmak da mümkün, ancak yukarıdaki özellikleri tek tek kurmanız gerekir.

Cluster mode neden önemli?

Node.js varsayılanda tek thread çalışır. 4 çekirdekli bir VPS’te bir Node sürecini çalıştırıyorsanız, %75 CPU kapasiteniz atıl durumda kalır. PM2 cluster mode, CPU çekirdek sayısı kadar worker süreci açar ve aralarında yük dağıtımı yapar:

pm2 start app.js -i max         # max = CPU sayısı kadar instance
pm2 start app.js -i 4           # 4 worker
4-8×
daha fazla throughput
4 çekirdekli VPS'te cluster mode ile tek instance moduna kıyasla.

Klasik kurulum vs panel üzerinden

Klasik

Terminal ile manuel PM2

  • npm install pm2 -g (global kurulum)
  • ecosystem.config.js yaz
  • pm2 start/stop/reload komutlarını öğren
  • pm2 logs ile log takibi
  • pm2 save + pm2 startup ile boot'ta başlatma
  • Güncelleme için SSH + manuel reload
Arayüz

VDS Panel ile

  • Proje ekle, Node.js seç
  • Cluster instance sayısını slider ile ayarla
  • Memory limit, auto-restart, log rotation otomatik
  • Canlı log stream panelde
  • Boot'ta otomatik başlat (zaten kurulu)
  • Git push → otomatik zero-downtime reload

Panel ile adım adım kurulum

  1. 01
    Node.js projesini ekleyin
    GitHub deposunu bağlayın ya da ZIP olarak yükleyin. Panel package.json'ı algılar, 'scripts.start' ya da belirttiğiniz entry point'i kullanır.
  2. 02
    Cluster ayarını yapın
    Instance sayısı için slider: 1 (fork mode) ile VPS'inizin CPU sayısı arasında. Çoğu API için 2-4 arası ideal.
  3. 03
    Memory limit belirleyin
    256MB, 512MB, 1GB gibi. Bu sınırı aşan worker otomatik restart olur. Memory leak tolere edilir, app çalışmaya devam eder.
  4. 04
    Env değişkenleri girin
    NODE_ENV=production, DATABASE_URL, API anahtarları. Git'e yazılmaz, panel secret vault'unda saklanır, runtime'da inject edilir.
  5. 05
    Domain bağlayın
    Özel alan adı veya subdomain. Panel Let's Encrypt sertifikasını otomatik alır, nginx reverse proxy'i 3000 portunuza yönlendirir.
  6. 06
    Deploy'a basın
    ~90 saniye içinde uygulamanız canlıda. Git push attığınızda zero-downtime reload tetiklenir.

Zero-downtime reload

PM2’nin en güçlü özelliklerinden biri graceful reload. Yeni kod deploy ettiğinizde:

  1. PM2 yeni worker’ları başlatır
  2. Yeni worker’lar dinlemeye başlar
  3. Eski worker’ların mevcut istekleri bitmesini bekler (graceful shutdown)
  4. Eski worker’lar kapanır

Kullanıcı hiçbir kesinti hissetmez. VDS Panel her deploy’u bu stratejiyle yapar.

Graceful shutdown sinyali

Node.js uygulamanız SIGINT veya SIGTERM sinyalini dinliyorsa, PM2 kapanırken uygulamanıza açık DB bağlantılarını kapatma, cache flush etme gibi temizlik işleri için 10 saniye süre verir. Panel bu süreyi varsayılan olarak ayarlar.

Memory sızıntılarına karşı savunma

Node.js memory leak’leri yaygındır; özellikle event listener unutulduğunda, global cache büyüdüğünde. PM2’nin max_memory_restart ayarı çözüm sunar:

{
  name: "api",
  script: "dist/server.js",
  instances: 4,
  max_memory_restart: "512M"
}

Panel arayüzünde bu değer bir slider. 512M belirttiyseniz, bir worker 512MB’ı geçince PM2 onu sessizce yeniden başlatır. Diğer worker’lar trafiği karşılamaya devam eder.

Production'da DEV bağımlılıkları

Panel npm ci --production ile kurulum yapar, dev dependencies yüklenmez. devDependencies içindeki bir paketi runtime’da import ediyorsanız production build başarısız olur. Panel build log’unda bu hataları görürsünüz.

Log yönetimi

PM2 her worker için ~/.pm2/logs/<app>-out.log ve ~/.pm2/logs/<app>-error.log yazar. Zamanla bu dosyalar dolar. Panel, log rotation’ı otomatik aktif eder:

  • Dosya boyutu 100 MB’a ulaşınca rotate
  • 5 eski dosya tutulur
  • Log’lar panel UI’ından canlı stream edilir (terminal açmadan)

Monitoring ve alertler

Panel her PM2 süreci için:

  • CPU ve memory grafiği canlı akar
  • Restart sayısı izlenir (çok restart = bug sinyali)
  • Response time telemetrisi (eğer express-status-monitor veya benzeri ekliyse)
  • CPU limit aşımında otomatik cpulimit daemon başlatma (komşu projeleri koruma)

Node.js framework’leri

VDS Panel şu framework’lerle test edilmiştir ve otomatik algılar:

  • Express, yaygın, hızlı, sade
  • NestJS, enterprise-grade, TypeScript odaklı
  • Fastify, ultra-hızlı, JSON-schema validation yerleşik
  • Koa.js, Express yaratıcılarının modern halefi
  • Hapi, konfigürasyon odaklı, plugin ekosistemi geniş
  • AdonisJS, Laravel benzeri MVC

Panel package.json’ınızı okuyup doğru framework’ü algılar, uygun start script’ini seçer.

Sonuç

PM2, Node.js production’ının olmazsa olmazı. Cluster mode, otomatik restart, memory limit, log rotation, zero-downtime reload, hepsi tek bir daemonla gelir. VDS Panel bu ayarları terminal komutu ezberlemeden arayüzden yönetmenizi sağlar.

Node.js projenizi canlıya almak için panel kurulumunu 8 dakikada tamamlayabilir, ilk projenizi iletişim formumuzdan demo talep ederek görebilirsiniz.

Kendi sunucunuzda denemek ister misiniz?

İletişim formundan ulaşın, kullanım senaryonuza uygun lisans + kurulum planını birlikte hazırlayalım.

Hazır olduğunuzda buradayız

Kendi sunucunuzda modern deploy deneyimi, bir iletişim mesajı uzakta.

Kullanım senaryonuzu anlayıp size uygun lisans ve kurulum planını hazırlayalım. Ortalama yanıt süremiz 24 saatin altında.