Blog

VPS'inizde Supabase barındırırken dikkat edilmesi gerekenler ve konfigürasyon rehberi

VPS’inizde Supabase Barındırarken Nelere Dikkat Edilmeli

Supabase, açık kaynak kodlu bir arka uç hizmeti (BaaS) olarak geliştiricilere PostgreSQL tabanlı tam donanımlı bir arka uç sunan bir platformdur. Bulut üzerinden kullanımı yaygın olsa da, sistemin tamamını kendi VPS’inizde barındırmak hem veri kontrolünü hem de maliyet optimizasyonunu elinize alıyor. Bu rehberde, VPS’te Supabase barındırma sürecinde dikkat etmeniz gereken teknik detayları, gerekli donanım özelliklerini ve adım adım kurulum sürecini ele alacağız.

Supabase Nedir, Kendi Sunucunuzda Ne İşe Yarar?

Supabase, Firebase’in açık kaynak alternatifi olarak karşımıza çıkan ve birden fazla hizmet tek çatı altında birleştiren bir çözümüdür. Veritabanı olarak varsayılan olarak güçlü bir PostgreSQL kullanır ve bunun üzerinde kimlik doğrulama, dosya depolama, anlık (realtime) veri abonelikleri ile sunucusuz fonksiyonlar gibi katmanlar inşa eder. Otomatik oluşturulan API’ler, frontend ve mobil uygulamalar için geliştirme süresini ciddi şekilde kısaltır.

Kendi VPS’inizde barındırıldığında Supabase, verilerinizin fiziksel olarak nerede saklandığını tamamen siz belirlemenizi sağlar. Bu özellikle KVKK ve GDPR gibi veri yerelleştirme düzenlemelerinin geçerli olduğu durumlar veya özel bir güvenlik politikası izlenen iş projeleri için kritik önem taşır. Ayrıca kullanıcı sayısı veya istek hacmi büyüdükçe bulut sağlayıcılarının kullandık ödemeli faturaları beklenmedik şekilde şişebilir; kendi altyapınızda bu maliyeti önceden hesaplar ve sabitlersiniz.

Self-Hosting’in Sağladığı Avantajlar ve Üstlenilen Sorumluluklar

Kendi altyapınızda Supabase çalıştırmayı değerlendiren geliştiriciler genellikle şu nedenleri öne çıkarır:

  • Veri özerliği: Verileriniz üçüncü bir tarafın sunucularında değil, sizin kontrolünüzdeki bir sunucuda bulunur. İstenilen bölgeye ve yedekleme stratejisine kolayca ulaşabilirsiniz.
  • Maliyet öngörülülüğü: Trafik patlamaları veya veri aktarım hacmindeki artışlar faturayı sürpriz yapmaz. Sabit bir aylık maliyet planlamanızı kolaylaştırır.
  • Özelleştirilebilir altyapı: PostgreSQL sürümü, eklentiler, kimlik doğrulama sağlayıcıları veya fonksiyon çalıştırma ortamı gibi bileşenleri kendi ihtiyaçlarınıza göre düzenleyebilirsiniz.
  • Bağımsızlık: Supabase açık kaynak olduğu için kod tabanına erişebilir ve gerekli görülen her katmanı modifiye edebilirsiniz.

Bunların yanı sıra sorumluluk da size geçiyor. Güncellemeler, yedeklemeler, güvenlik yamaları ve performans optimizasyonları gibi operasyonel işleri siz yönetmek zorundasınız. Bu nedenle operasyonel yükü iyi değerlendirmek gerekir.

Gereksinimler: Hangi VPS Özellikleri Lazım?

Supabase, birden fazla konteynerin aynı anda çalışması gereken oldukça kapsamlı bir yığındır. Bu nedenle belirli bir taban güce ihtiyacı vardır. Genel kabul gören minimum değerler şu şekildedir:

  • İşlemci: En az 2 vCPU
  • Bellek (RAM): En az 4 GB, önerilen 6 GB ve üzeri
  • Disk: SSD tabanlı, en az 32 GB; veriler büyüdükçe bu alanı genişletmek mantıklı olur
  • Bant genişliği: Aktif bir kullanıcı kitlesi için yeterli veri aktarım hacmi
  • İşletim sistemi: Docker ve Docker Compose’u sorunsuz çalıştıran modern bir Linux dağıtımı (Debian, Ubuntu gibi)

Bu özellikleri karşılayan bir VPS hizmeti seçirken özellikle SSD disk hızı ve ayırılmış CPU performansına dikkat etmek, runtime sırasında yaşayabileceğiniz yavaşlamaları önler. Aşağıda bulut tabanlı kullanım ile kendi sunucunuzda barındırma arasındaki temel farkları karşılaştırabilirsiniz.

Özellik Bulut (Supabase.com) Kendi VPS’inizde Barındırma
Veri kontrolü Sağlayıcı yönetir Tamamen sizde
Maliyet yapısı Kullandık ödemeli Sabit
Operasyonel yük Düşük Yüksek
Özelleştirme Sınırlı Tamamen açık
Güncelleme Otomatik Sizin yönetiminizde

11 Konteynerden Oluşan Yığının İçindekiler

Supabase’in resmi dağıtımı, Compose dosyası üzerinden yönetilen birbirine bağlı birkaç servis içerir. Bu servislerden her biri ayrı bir sorumluluk üstlenir:

  • DB (PostgreSQL): Sistemin kalbi. Veriler burada saklanır ve pgvector gibi eklentilerle makine öğrenimi çalışmalarına da olanak tanır.
  • API (PostgREST): PostgreSQL verisine HTTP üzerinden erişim sağlayan ve otomatik API oluşturandan sorumludur.
  • Auth (GoTrue): E-posta, şifre ve sosyal giriş gibi kimlik doğrulama yöntemlerini yönetir.
  • Realtime: WebSocket tabanlı anlık veri yayını ve abonelik hizmeti sunar.
  • Storage: Dosya yükleme, indirme ve dönüştürme işlemlerini yönetir.
  • Storage Transformer: Görsel dönüştürme gibi arka plan görevlerini işler.
  • Functions: Sunucusuz (serverless) JavaScript/TypeScript fonksiyonlarını Deno runtime’ında çalıştırır.
  • Meta (Gateway): Konteynerlerin birbirleriyle iletişimini ve yönetimini sağlar.
  • Inbucket: Test posta kutusu. Doğrulama ve şifre sıfırlama e-postalarını yakalayan, geliştirme ortamında gerçek alıcıya ulaşmayan bir posta sunucusudur.
  • Postgator: Veritabanı tablolarını ve verilerini görsel bir arayüz üzerinden yönetmenizi sağlayan admin panosudur.
  • Studio: Supabase’in web tabanlı yönetim arayüzüdür. Tek yerden veritabanı, kimlik doğrulama, depolama, realtime ve fonksiyonları izleyip kontrol edebilirsiniz.

Bu servislerin tamamı birbiriyle entegre çalışır ve Docker Compose üzerinden tek bir komutla aya kaldırılabilir. Servislerin sürümlerinin uyumlu olması, güncellemeler sırasında dikkat edilmesi gereken en önemli konulardan biridir.

Adım Adım Supabase Kurulumu

Kendi VPS’inizde Supabase’i kurmak, temel Docker bilgisini gerektirir. Süreç şu adımlardan oluşur:

  1. Depoyu klonlayın: Supabase’in resmi GitHub deposunu sunucunuza indirin.
  2. Docker ve Compose’u kurun: Sunucunuzda Docker Engine ve Docker Compose eklentisinin kurulu olduğundan emin olun.
  3. Ortam değişkenlerini ayarlayın: .env dosyasında güvenli bir JWT gizli anahtarı ve veritabanı şifresi gibi kritik bilgileri belirleyin.
  4. Servisleri başlatın: docker compose up -d komutyla tüm konteynerleri arka planda çalıştırın.
  5. Erişimi test edin: API uç noktalarını ve Studio arayüzünü tarayıcıdan sorgulayarak sistemin sorunsuz çalıştığını doğrulayın.

Kurulumdan sonra, sunucunuzu halka açık duruma getirmeden önce güvenlik duvarı kurallarını ve HTTPS yapılandırmasını tamamlamanız önerilir.

Güvenlik ve Performans İçin Kritik Öneriler

Self-hosting sürecinde dikkat etmeniz gereken birkaç kritik konu vardır:

  • HTTPS kullanın: Tüm trafiği SSL/TLS ile şifreleyin. Trafiği dinleyenlerin hassas verileri okumasını engeller.
  • Düzenli yedekleme: PostgreSQL verilerinizi periodik olarak yedekleyin. Beklenmeyen bir veri kaybı durumunda geri dönüşünüz olur.
  • Güvenlik yamaları: Konteyner imajlarını ve bağımlılıkları düzenli olarak güncelleyin.
  • Erişim kontrolü: Admin arayüzünü ve API uç noktlarını bilinçli şekilde koruyun, gereksiz açık uç noktalarını kapatın.
  • İzleme ve loglama: Sistem sağlığını ve performans metriklerini takip edecek araçlar kurun.

Bu önlemler, barındırdığınız sistemin hem güvenli hem de uzun vadeli olarak sürdürülebilir olmasını sağlar.

Sonuç

Kendi VPS’inizde Supabase barındırma, veri kontrolünü, maliyet öngörülülüünü ve özelleştirilebilir altyapıyı bir arada sunar. Doğru sunucu özelliklerini seçmek, servis yapısını anlamak ve güvenlik önlemlerini doğru uygulamak bu yolculuğun başarılı olması için kritiktir. Yukarıda ele aldığımız adımları ve önerileri takip ederek, kendi altyapınızda sağlam ve ölçeklenebilir bir arka uç kurabilirsiniz.