Blog

Eğitimler, rehberler ve ürün haberleri.

Geliştiriciler

Next.js'i kendi sunucunuzda yayınlamak: git push ile otomatik yayın

2 Kasım 2026 4 dk okuma
Bu yazıyı paylaş

Next.js'i kendi sunucunuzda yayınlamanın kısa yolu, sunucuya Coolify gibi bir yayın paneli kurup GitHub deponuzu bağlamaktır. Bundan sonra her git push uygulamayı derler ve yeni sürümü HTTPS ile yayına çıkarır. Next.js belgelerine göre Node.js sunucusu ya da Docker konteyneriyle yapılan yayında bütün özellikler çalışır, yani özel bir platforma bağlı değilsiniz.

Kendi sunucunuzda hangi özellikler çalışır?

Resmi belgedeki tablo kısa: Node.js sunucusu ve Docker bütün özellikleri destekler, statik dışa aktarma sınırlıdır. Tek sunucuda pratikte şunlar geçerlidir:

  • Sunucu bileşenleri, API yolları ve akışla yanıt next start ile çalışır.
  • next/image ek ayar istemez, görseller sunucuda işlenir.
  • Önbellek ve zamanlı yeniden üretim (ISR) kalıcı diski olan tek sunucuda kendiliğinden çalışır. Birden çok kopya çalıştırırsanız önbelleği paylaştırmanız gerekir.
  • Resmi öneri, Next.js'i doğrudan internete açmak yerine önüne ters vekil koymaktır. Coolify bunu Traefik ile hazır getirir, sertifikayı da o alır.

Sunucu ne kadar güçlü olmalı?

Bellek ihtiyacını çalışma anı değil derleme belirler. next build tepe yapar, uygulama ayağa kalktıktan sonra çok daha azına iner. Coolify'ın kendisi de bellek kullanır. Gerçek sunucuda ölçtüğümüz değerler şöyle:

BoyutKüçük projeÇok paketli proje
2 GB, 1 vCPU350 sn, 1,4 GB bellek ve 0,5 GB takasDerleme bellekten düştü
4 GB, 2 vCPU213 sn, 2,2 GB bellek ve 0,2 GB takas223 sn, 3,5 GB bellek ve 0,9 GB takas

Küçük proje Coolify'ın örnek Next.js uygulamasıydı. Çok paketli proje ise Next.js 16 ile yazılmış, yaklaşık 85 paketli bir yapay zekâ sohbet uygulamasıydı ve 2 GB'ta TypeScript denetimi sırasında bellek bitti. Sunucuda 2 GB takas açıktı, rakamlar en yüksek anı gösterir. Disk kullanımı ilk derlemeden sonra 13-18 GB oldu. Bunlar bizim ölçümümüzdür, sizin projenizde değişir. Derleme bellek yüzünden düşerse önce sunucuyu büyütün, gerekirse sonra küçültün.

Adım adım yayın

1. Depoyu bağlayın

Coolify'a girin, Projects sayfasından projenizi açın, New resource deyin. Herkese açık depoda Public Git Repository seçip adresi yazın, Check repository deyin.

2. Özel depoysa anahtar ekleyin

Sol menüde Keys & Tokens altındaki Private Keys sayfasından Generate ED25519 ile anahtar üretin. Açık anahtarı GitHub'da deponun Settings sayfasındaki Deploy keys bölümüne ekleyin. Sonra New resource ile Private Git Repository (with Deploy Key) seçip [email protected]:kullanici/proje.git adresini yazın. Build pack alanında Railpack kalsın, Next.js'i kendisi tanır, port 3000 olur. Railpack Coolify'da beta olarak işaretlidir, sorun çıkarsa kendi Dockerfile'ınızı seçin.

3. Ortam değişkenlerini girin

Environment Variables sayfasında Developer view seçeneğine geçip .env içeriğinizi yapıştırabilirsiniz. Bir ayrıntı önemli: adı NEXT_PUBLIC_ ile başlayan değişkenler derleme sırasında koda gömülür. Değerini değiştirince Redeploy deyin, panel derleme ayarının değiştiğini görüp yeniden derler. Tarayıcıya gitmemesi gereken anahtarlara bu öneki vermeyin.

4. Alan adınızı bağlayın

Alan adı sağlayıcınızda bir A kaydı açıp sunucunun IP adresini yazın. Coolify'da Domains sayfasında Add domain deyin, protokol olarak https seçip alan adınızı yazın, kaydedin ve yeniden yayınlayın. Sertifika kendiliğinden alınır ve yenilenir. 80 ve 443 numaralı portlar açık olmalıdır.

5. Yayınlayın

Deploy düğmesine basın. Deployments sayfasında derleme günlüğünü canlı izlersiniz. Derleme bitince eski konteyner yenisi hazır olana dek çalışmaya devam eder.

git push nasıl yayına dönüşüyor?

GitHub her push'ta panele imzalı bir istek gönderir, panel imzayı doğrular ve o dalın uygulamasını yeniden derler. İmza tutmazsa istek reddedilir. Bağlantıyı şöyle kurarsınız:

  1. Uygulamanın Webhooks sayfasında GitHub bölümündeki Webhook URL adresini kopyalayın, Webhook secret alanına en az 16 karakterlik rastgele bir değer girip kaydedin.
  2. GitHub'da deponun Settings sayfasından Webhooks bölümüne gidin, Add webhook deyin.
  3. Payload URL alanına adresi, Secret alanına aynı değeri yazın. Content type olarak application/json seçin, olay olarak yalnız push kalsın.

Sonra denemek için:

git commit --allow-empty -m "yayin denemesi"

git push

Deployments sayfasında yeni derleme görünür. Küçük örnek projede derleme önbelleği sayesinde yeni bir commit 41 saniyede yayına çıktı. GitHub panelin adresine erişebilmelidir. Kurulumda panel herkese açık HTTPS adresiyle geldiği için ek bir şey gerekmez.

Sık karşılaşılan hatalar

BelirtiSebepÇözüm
Derleme Killed ya da heap out of memory ile düşüyorBellek yetmiyorSunucuyu büyütün
Yeni NEXT_PUBLIC_ değeri görünmüyorDeğer derlemeye gömülüRedeploy yapın
Derleme eksik değişkenden düşüyorKod derlemede değişkeni okuyorDeğişkeni panele ekleyin, derlemede kullanılabilir kalsın
Sertifika gelmiyorA kaydı henüz yayılmadı ya da yanlışKaydı kontrol edin, yayıldıktan sonra yeniden yayınlayın
Yayında 502 hatasıUygulama farklı portta dinliyorGeneral sayfasındaki port değerini düzeltin

Seturack'ta Next.js seçeneğiyle Coolify kurulu gelir: yerel sunucu doğrulanmış, karşılama sihirbazı kapalı, panel HTTPS ile açık. Adres ve şifre panelinizde görünür, GitHub'ı bağlamakla başlarsınız. Root erişimi sizde; isterseniz her şeyi panelden yönetirsiniz. Fiyata günlük yedek dahildir, trafik limitsizdir. Boyutu Next.js VPS sayfasında kaydırıcılarla seçersiniz.

Seturack'ta kurulu gelir: Next.js, Coolify.

Yorumlar0

Henüz Yorum Yok

İlk düşüncenizi paylaşan siz olun.

Tartışmaya Katıl

Yorum bırakmak için lütfen giriş yapın veya kaydolun.

Hiçbir Yazıyı Kaçırmayın

En yeni eğitim, rehber ve ürün haberlerini gelen kutunuzda alın.

Bülten aboneliğiniz alındı.