İçeriğe geç
Notlar

apiDevOpsyayına almaRender

Render ile backend'ini ve veritabanını yayınlamak: adım adım

Sürekli çalışan bir backend'i ücretsiz yayına almak istediğinde seçenekler daralıyor; Render bunlardan biri. Ücretsiz planın uyku ve veritabanı sınırlarını, uygulamayı hazırlamayı, ilk yayını ve PostgreSQL bağlamayı anlattık.

Emir KAYNAR · 3 dk okuma

Frontend'i yayına almak için birçok seçenek var. Ama sürekli çalışan bir backend'i, örneğin bir REST API'yi ya da bir botu ücretsiz yayına almak istediğinde seçenekler daralıyor. Render bunlardan biri: bir depoyu bağlayıp derleme ve başlatma komutunu verdiğinde Node.js, Python, Go ya da Docker ile yazılmış bir sunucuyu yayınlıyor ve ücretsiz bir PostgreSQL veritabanı da sunuyor. Bu yazı ücretsiz yayın serimizin Render rehberi.

Ücretsiz planın sınırları

Render'ın ücretsiz planı demo ve öğrenme projeleri için tasarlanmış. Render'ın belgesine göre:

  • Uyku: Ücretsiz web servisi 15 dakika istek almazsa uykuya geçiyor. Bir sonraki istekte yeniden açılması yaklaşık bir dakika sürüyor.
  • Süre: Her çalışma alanına ayda 750 ücretsiz çalışma saati veriliyor.
  • Dosyalar: Sunucunun diskine yazdığın dosyalar yeniden yayında, yeniden başlatmada ve uykuda siliniyor. Kullanıcıların yüklediği dosyaları diskte saklayamazsın.
  • Veritabanı: Ücretsiz PostgreSQL 1 GB ve oluşturulduktan 30 gün sonra süresi doluyor; ardından 14 günlük ek sürenin sonunda siliniyor. Yedek alınmıyor.

Portföydeki bir demo için bunlar kabul edilebilir. Gerçek kullanıcısı olan bir uygulama için değil. Demo bağlantının yanına "ilk açılış bir dakika sürebilir" notunu düşmek, projeni açan kişinin onu bozuk sanmasını önler.

Uygulamanı hazırla

Render, uygulamanın dinlemesi gereken portu PORT ortam değişkeniyle veriyor. Portu koda sabit yazmak yerine oradan oku ve bütün adreslerde dinle:

js
const port = process.env.PORT || 3000;
app.listen(port, "0.0.0.0", () => console.log(`listening on ${port}`));

Veritabanı adresi, API anahtarları gibi değerleri de ortam değişkenlerinden oku.

Adım adım ilk yayın

  1. render.com'a GitHub hesabınla kaydol.
  2. Panelde New → Web Service'i seç ve depoyu bağla.
  3. Ayarları doldur:
    • Runtime: Node, Python, Go ya da Docker. Depoda bir Dockerfile varsa Docker'ı seçmek en öngörülebilir yol.
    • Build Command: Örneğin npm ci.
    • Start Command: Örneğin node server.js.
    • Instance Type: Free.
  4. Ortam değişkenlerini ekle ve servisi oluştur. Derleme bitince servis proje-adi.onrender.com gibi bir adreste açılıyor.

Bundan sonra bağladığın branch'e her push'ta servis yeniden yayınlanıyor.

Veritabanı ekle

  1. New → Postgres ile ücretsiz bir veritabanı oluştur. Web servisinle aynı bölgeyi seç.
  2. Veritabanı sayfasında iki adres var: Internal Database URL ve External Database URL. Web servisin için iç adresi kullan; aynı bölgedeki servisler arasında daha hızlı ve güvenli.
  3. Bu adresi web servisinin ortam değişkenlerine DATABASE_URL adıyla ekle.

30 günlük sınırı unutma: veritabanının ne zaman dolacağını takvimine yaz ve önemli verileri düzenli olarak dışarı aktar. Daha uzun süreli bir ücretsiz veritabanı istiyorsan veritabanını ayrı bir servisin ücretsiz planında tutup Render'daki backend'i ona bağlayabilirsin.

Sık takılınan yerler

  • Yayın "port bulunamadı" hatasıyla düşüyor: Uygulama PORT değişkenini okumuyor ya da yalnızca localhost'ta dinliyor.
  • İlk istek çok yavaş: Servis uykudaydı. Ücretsiz planda beklenen davranış.
  • Yüklenen dosyalar kayboldu: Ücretsiz planda disk kalıcı değil. Dosyaları bir nesne depolama servisinde sakla.
  • Veritabanı silindi: 30 günlük süre doldu. Yedek almadıysan veri geri gelmiyor.

Serinin diğer yazılarında GitHub Pages, Vercel ve Netlify'ı anlatıyoruz. Backend'ini yayına alırken takıldığın bir yer olursa re:make her pazar 15.00'te buluşuyor; üye olmadan da gelebilirsin. Yeri ve saati burada.

XLinkedIn

Bir sonraki not düştüğünde haberin olsun.

Yeni haberler ve rehber yazılar. Ayda birkaç mail, istediğin an çık.

Yorumlar 0

Yorum yaz

Başka notlar

Okumaya devam.

  1. 11 Ekim 2026

    Flutter'ı Spring Boot (Kotlin) API'ye bağlamak: önce API sözleşmesi

    Flutter modeli foundAt bekliyor, API found_at dönüyor ve ekran sessizce boş kalıyor. Flutter uygulamasını kendi Spring Boot (Kotlin) API'ne bağlarken önce sözleşmeyi yazmanın neden işe yaradığını ve nasıl yapılacağını örneklerle anlatıyoruz.

    flutter · kotlin · spring boot · api

    Can Karaca · 8 dk okuma