Vercel'den kendi sunucunuza geçiş: Next.js uygulaması nasıl taşınır?
Next.js uygulamanızı Vercel'den kendi sunucunuza taşımak için aynı GitHub deposunu sunucudaki Coolify paneline bağlayın, ortam değişkenlerini kopyalayın, Vercel'e özgü parçaların (cron, analiz, depolama) yerini doldurun, uygulamayı deneme adresinde sınayın ve en son alan adınızın A kaydını çevirin. Next.js belgesine göre Node.js sunucusunda bütün özellikler çalışır. Eski yayın siz çevirene kadar açık kalır, geri dönüş yolunuz da hazır durur.
Bu aslında bir fatura modeli kararıdır. Vercel'in belgesine göre altyapı kullanımı aktarılan veri, istek sayısı ve işlem süresine göre faturalanır. Sunucuda ise seçtiğiniz RAM, işlemci ve disk için sabit aylık ücret ödersiniz. İki modelin de doğru olduğu durumlar var, karşılaştırma yazımız kendi rakamlarınızla hesap yapmanın yolunu veriyor.
Taşınınca ne değişir?
| Konu | Vercel | Kendi sunucunuz |
|---|---|---|
| Fatura | Kullanıma göre | Sabit aylık, limitsiz trafik, günlük yedek fiyata dahil |
| Konum | Küresel dağıtım ağı | Tek sunucu, İstanbul |
| Yük artınca | Platform karşılar, fatura büyür | Kapasite dolarsa site yavaşlar, büyütmeyi siz yaparsınız |
| Derleme | Platformun makinelerinde | Aynı sunucuda, belleği derleme belirler |
| Bakım | Platformda | İşletim sistemi, paket güncellemeleri ve izleme sizde |
| Önizleme | Dallar için kendiliğinden | Coolify'da ayrıca açılır, aynı sunucuyu kullanır |
| Ağ güvenliği | Vercel Firewall | Sunucunun güvenlik duvarını siz yönetirsiniz |
Açık söyleyelim: sunucu tek yerdedir, dünya geneline uç noktalardan dağıtım olmaz, bakım da size geçer. Bu farklar kimin için önemli değil? Ziyaretçileriniz çoğunlukla Türkiye ve yakın ülkelerdeyse tek konum sorun olmaz. Sayfalarınız tek bir veritabanından besleniyorsa kod nerede çalışırsa çalışsın yanıt o veritabanını bekler. Panel, iç araç ya da trafiği öngörülebilir ürünlerde kendiliğinden büyümeyi çoğu zaman aramazsınız. Kitleniz dünyaya yayılmışsa, trafik ani sıçramalar yapıyorsa ya da bakımla hiç uğraşmak istemiyorsanız Vercel'de kalmak daha doğru olabilir.
Yeni sunucuyu hazırlayın
- Next.js VPS sayfasından sunucu alın, Coolify kurulu açılır.
- Depoyu bağlayın. Kısa yol, proje klasörünü Claude Code ya da Cursor'da açıp panelin Genel Bakış sekmesindeki Yapay zekâ aracınıza yapıştırın satırını yapıştırmaktır, araç yayını kendisi yapar. Elle de yapabilirsiniz. Root erişimi sizde; isterseniz her şeyi panelden yönetirsiniz.
- Node sürümünü
package.jsoniçindeengines.nodeile sabitleyin, derleme aracı buradan okur. - Değişkenleri alın:
vercel env pull .env.tasima --environment=production. Secret türündeki değerler okunamaz, CLI yer tutucu yazar, bunları kaynağından alın. Dosyayı depoya koymayın, içeriğini Coolify'da Environment Variables sayfasına girin.NEXT_PUBLIC_değerleri derlemede kullanılabilir kalsın. - Vercel'e bağlı kodu arayın:
grep -n "@vercel/" package.jsonvegrep -rnE "VERCEL_|x-vercel-" app src.VERCEL_URLgibi sistem değişkenleri sunucuda yoktur, kendi değişkeninizle değiştirin.
Next.js özellikleri ve Vercel'e özgü parçalar
| Parça | Kendi sunucunuzda | Yapılacak |
|---|---|---|
| Görsel optimizasyonu | next start ile ek ayarsız çalışır | İşlem sunucunun işlemci ve belleğini kullanır, çok görselli sitede boyuta bakın |
| ISR ve önbellek | Tek kopyada yerel diskle kendiliğinden çalışır | Birden çok kopyada paylaşım gerekir. Yeni yayında konteyner yenilendiği için önbellek yeniden dolar |
| Middleware (Next.js 16'da Proxy) | next start ile ek ayarsız çalışır | Kod aynı kalır, istekler İstanbul'da işlenir |
| Cron işleri | vercel.json okunmaz | Coolify'da Scheduled Tasks ile aynı adresi çağırın: curl -fsS -H "Authorization: Bearer $CRON_SECRET" http://localhost:3000/api/cron. Vercel cron saati UTC'dir, Coolify sunucu saatini kullanır |
| Yönlendirme ve başlıklar | vercel.json okunmaz | next.config içine taşıyın |
| Web Analytics, Speed Insights | Vercel'in dağıtıma eklediği yollara dayanır | Bileşenleri kaldırın, Umami gibi bir araç kullanın |
| AI Gateway | Başka sunucudan API anahtarıyla çağrılır | AI_GATEWAY_API_KEY girin |
Postgres, KV ve Blob ne olacak?
- Postgres ve KV: Vercel'in belgesine göre bu ürünler artık yok, eski veritabanları pazaryeri sağlayıcılarına taşındı. Veriniz bugün ayrı bir sağlayıcıdadır, bağlantısı ortam değişkenindedir. Değişkeni taşırsanız uygulama aynı veritabanına bağlanır. Faturası Vercel hesabınızdan geçiyorsa hesabı kapatmadan önce veriyi alın. Veritabanı uzaktaysa her sorgu o mesafeyi gider, yakına almak çoğu zaman mantıklıdır.
- Sunucuya almak: Coolify'da PostgreSQL açın,
pg_dump -Fc "ESKI-VERITABANI-ADRESI" --no-owner --no-privileges -f yedek.dumpile aldığınız arşivi veritabanının Backups sayfasındaki Import backup ile yükleyin. Redis önbellek içinse boş başlamak çoğu zaman yeter. - Blob:
BLOB_READ_WRITE_TOKENbaşka sunucudan da çalışır, olduğu gibi bırakabilirsiniz. Dosyaları sunucuya alacaksanız kodu değiştirip klasörü Persistent Storage ile bağlayın.
Alan adını kesintisiz taşıma
- Uygulamayı Coolify'ın verdiği HTTPS adresinde sınayın: giriş, form ve ödeme akışları, görseller, cron için Execute now.
- Kayıtların nerede durduğunu
dig NS ornek.com +shortile bulun. Vercel'in ad sunucularıysa kayıtlar Vercel'in Domains sayfasındadır, değilse DNS sağlayıcınızda. - Kök ve
wwwkayıtlarının TTL değerini düşürün, örneğin 300 saniye. Eski TTL süresi kadar bekleyin. - Veritabanı da taşınıyorsa yazmaları durdurup son kopyayı yükleyin.
- A kaydını sunucunun IP adresine çevirin. MX ve TXT kayıtlarına dokunmayın, e-postanız onlara bağlıdır.
- Coolify'da Domains sayfasına alan adını
httpsile ekleyip Redeploy deyin. Sertifika kendiliğinden alınır. - Vercel yayınını birkaç gün açık tutun. Eski kaydı önbellekte tutan ziyaretçi oraya gider, sorun çıkarsa kaydı geri çevirirsiniz.
- Trafik geçince alan adını Vercel projesinden kaldırın, Git bağlantısını Disconnect ile kesin, TTL'yi eski hâline getirin.
Sertifika, alan adı sunucuya yöneldikten sonra alınır. Bu kısa aralıkta yeni sunucuya gelen ziyaretçi sertifika uyarısı görebilir, bu yüzden geçişi trafiğin az olduğu saate koyun.
Sık sorulan sorular
Hangi boyutla başlamalıyım?
Satış sayfasının önerdiği en az boyut 4 GB RAM, 2 vCore ve 40 GB disktir. Küçük proje 2 GB'ta derlendi, 85 paketli proje 2 GB'ta bellek yetmediği için düştü, 4 GB'ta derlendi. Panelden büyütürsünüz, IP ve veri aynı kalır.
Aylık maliyet ne olur?
Bu boyut aylık 299 TL'dir (KDV dahil, TL taban fiyat). Trafik limitsizdir. Tutar, boyutu değiştirmedikçe aynı kalır.
Alan adım Vercel'den alınmışsa taşımam gerekir mi?
Hayır. Vercel'in belgesine göre alan adı kaydı ile DNS sağlayıcısı ayrı işlemlerdir. A kaydını Vercel'de değiştirmeniz yeter, varsayılan kayıtları yeni kaydınız geçersiz kılar.
Taşıdıktan sonra güncelleme nasıl olur?
Webhook kurduysanız git push yeni sürümü derleyip yayınlar. Sorun çıkarsa Coolify'ın Rollback sayfasından önceki imaja dönersiniz.
Veritabanını taşımadan geçebilir miyim?
Evet, en az riskli sıra da budur. Önce uygulamayı taşıyın, veritabanını sonra ayrı bir adımda alın.
Yorumlar0
Henüz Yorum Yok
İlk düşüncenizi paylaşan siz olun.
Yorum bırakmak için lütfen giriş yapın veya kaydolun.