Self-Hosted WhatsApp Mesaj Sistemi (Kendi Sunucunda)

≈ 8 dk okuma

Toplu WhatsApp bildirimi göndermek isteyen çoğu işletme, ilk adımda hazır bir bulut paneline abone oluyor. Oysa aynı işi kendi sunucunuzda çalışan self-hosted bir WhatsApp mesaj sistemi ile yapabilir; hem rehberinizin ve mesaj geçmişinizin kontrolünü elde tutar hem de mesaj başına ücretten kurtulursunuz. Bu yazıda self-hosted'ın tam olarak ne anlama geldiğini, hangi avantaj ve dezavantajları getirdiğini, mimarisini ve SaaS ile net farkını anlatıyoruz.

1. Self-hosted ne demek?

"Self-hosted" (kendi sunucunuzda barındırılan), yazılımın üçüncü bir şirketin bulutunda değil, sizin kontrolünüzdeki bir sunucuda çalışması demektir. Pratikte bu, aylık birkaç dolara kiraladığınız bir VPS (sanal sunucu) üzerine sistemi kurmanız anlamına gelir. Karşı taraftaki SaaS modelinde ise yazılım sağlayıcının makinelerinde çalışır; siz yalnızca bir arayüze giriş yaparsınız ve verileriniz o şirketin veritabanında durur.

Buradaki fark yalnızca teknik bir tercih değil; veri sahipliği, maliyet yapısı ve bağımsızlık üzerinde doğrudan etkisi olan bir karardır. Anlattığımız sistem tam olarak self-hosted modele göre tasarlanmıştır: kaynak kodu açıktır, kendi VPS'inizde ayağa kalkar ve WhatsApp'a telefonunuzdaki hesabı QR kod ile bağlayan whatsapp-web.js üzerinden erişir. Bu bir resmi WhatsApp Business API entegrasyonu değildir; QR tabanlı bu yaklaşımın ne olduğunu whatsapp-web.js nedir yazısında ayrıntılı açıkladık.

2. Avantajları: veri, maliyet, özgürlük

2.1 Veri kontrolü

Self-hosted kurulumda rehberiniz, gönderdiğiniz her mesajın kaydı ve WhatsApp oturumunuz yalnızca sizin sunucunuzda tutulur. Hiçbir aracı şirket müşteri listenizi göremez. Bu, KVKK ve GDPR açısından da güçlü bir konumdur: "veri işleyen" bir üçüncü tarafı denklemden çıkarır. Kişisel veriyi kendi kontrolünüzde tutmanın hukuki tarafını KVKK'ya uygun toplu mesaj yazısında ele aldık.

2.2 Sabit ve düşük maliyet

SaaS panellerinde fatura mesaj hacmiyle veya kişi başına büyür. Self-hosted'da ise maliyet sabittir: yazılım açık kaynak (0), Supabase ücretsiz katman (0), tek gerçek gider aylık sunucu kirasıdır. Gönderdiğiniz mesaj sayısı bu tutarı değiştirmez. Resmi API'nin konuşma bazlı ücretlendirmesiyle kıyaslaması için Business API alternatifi yazısına bakın.

2.3 Özgürlük ve genişletilebilirlik

Kod sizde olduğu için sistemi kendi ihtiyaçlarınıza göre değiştirebilir, mevcut sipariş veya CRM sisteminizle konuşturabilirsiniz. Örneğin bir web formu ya da e-ticaret altyapısı, sunucudaki HTTP API entegrasyonu üzerinden doğrudan bildirim tetikleyebilir. SaaS'ta ise sağlayıcının sunduğu özelliklerle sınırlısınızdır.

Self-hosted'ın özü tek cümlede: sistemi siz çalıştırdığınız için verinin, maliyetin ve yol haritasının kontrolü de sizde kalır. Karşılığında sunucunun ayakta kalmasından da siz sorumlu olursunuz.

3. Dezavantajları: bakım ve sorumluluk

Dürüst olmak gerekirse self-hosted her senaryo için ideal değildir. Getirdiği yükleri de bilerek karar vermelisiniz:

  • Kurulum: Bir VPS kiralamak ve komut satırıyla temel düzeyde çalışabilmek gerekir. (Zorluğu abartmayın; kurulum üç komuta indirgenmiştir.)
  • Bakım: Güncellemeleri uygulamak, sunucunun disk/bellek durumunu ara sıra kontrol etmek ve WhatsApp oturumu kopduğunda yeniden QR okutmak sizin sorumluluğunuzdadır.
  • Ayakta kalma: Sunucu çökerse sizi arayacak bir destek ekibi yoktur; yeniden başlatmak size düşer. Docker'ın restart: always politikası bunu büyük ölçüde otomatikleştirir.
  • Kaynak yönetimi: Headless Chromium bellek yer; yetersiz RAM'li bir sunucuda worker takılabilir.

Bu yükler, birkaç dakikada bir hazır panele giriş yapmaya alışkın bir kullanıcı için caydırıcı görünebilir. Ancak temel Linux/Docker rahatlığı olan biri için haftalık bakım süresi pratikte birkaç dakikadır.

4. Mimari: sistemi ayakta tutan parçalar

Self-hosted sistem, tek bir dev uygulama değil; her biri kendi Docker konteynerinde çalışan birkaç servisin uyumundan oluşur. Bu ayrım, hız sınırının tek bir yerde yaşamasını ve panelin göndericiden bağımsız olmasını sağlar.

ServisGörev
Web (React / nginx)Panel arayüzü: gönderim oluşturma, mesaj takibi, QR okutma
Server (Express :3200)İstekleri doğrular, kuyruğa ekler; kendisi asla mesaj göndermez
Redis + BullMQİş kuyruğu ve zamanlanmış gönderimler (AOF ile kalıcı)
Worker (Node 20 + Chromium)Tek gönderim yetkilisi; tüm anti-ban zamanlamasını uygular (eşzamanlılık 1)
Supabase (PostgreSQL)Kalıcı kayıtlar: bildirim mesajları ve WhatsApp oturumları

Kritik nokta şudur: server hiçbir zaman mesaj göndermez, tek gönderici worker'dır. Panele saniyede yüz istek gelse bile WhatsApp'a giden trafik worker'ın insan hızındaki temposunu aşamaz. WhatsApp oturumu bir LocalAuth volümünde saklandığı için sunucu yeniden başladığında yeniden QR okutmanıza gerek kalmaz. Bu servisleri kendi kuyruğunuzdan tetiklemenin yolu için HTTP API entegrasyonu yazısına bakabilirsiniz.

5. SaaS mı, self-hosted mı? Karşılaştırma

İki modeli aynı kriterler üzerinden yan yana koyduğumuzda tablo netleşir:

KriterBulut SaaS panelSelf-hosted (bu sistem)
Veri nerede?Sağlayıcının sunucusundaSizin sunucunuzda
Maliyet modeliAylık abonelik / mesaj başınaSabit sunucu kirası, mesaj başına 0
Aylık maliyet (10k mesaj)Hacimle artar~5–10 USD (değişmez)
KurulumAnında (hesap aç)Üç komut + VPS
BakımSağlayıcıdaSizde
ÖzelleştirmeSağlayıcının izin verdiği kadarSınırsız (kod sizde)
Vendor lock-inYüksekYok
Anti-ban kontrolüKapalı kutuKoda sabit, şeffaf

6. Kimler için doğru seçim?

Self-hosted model şu profillere en çok yarar sağlar:

  • Düzenli, yüksek hacimli bildirim gönderenler: E-ticaret siteleri, dernek/vakıflar, klinik ve kurslar — mesaj başına ücret ortadan kalktığı için ölçekte büyük tasarruf.
  • Veri hassasiyeti olanlar: Müşteri listesini üçüncü tarafa emanet etmek istemeyen, KVKK/GDPR sorumluluğunu sıkı yöneten kurumlar.
  • Kendi sistemine entegre etmek isteyenler: Sipariş, randevu veya CRM yazılımından otomatik tetikleme kuracak ekipler.

Buna karşılık tek seferlik, çok küçük bir gönderim yapacaksanız ya da hiçbir teknik kurulumla uğraşmak istemiyorsanız, bir SaaS panel kısa vadede daha pratik olabilir. Karar tamamen hacminize ve teknik rahatlığınıza bağlıdır.

7. Donanım gereksinimi ve kurulum özeti

Self-hosted için abartılı bir sunucuya gerek yoktur. Önerilen minimum:

BileşenÖneri
RAM2 GB (Chromium için)
CPU2 vCPU
Disk20–40 GB SSD
YazılımDocker + Docker Compose
Zaman dilimiTZ=Europe/Istanbul (saat penceresi için kritik)
Aylık maliyet~5–10 USD

Kurulum özünde üç adımdır: Supabase'de supabase/migrations/001_init.sql dosyasını çalıştırmak, .env içindeki REDIS_PASSWORD ve WA_CONTROL_SECRET değerlerini openssl rand -hex 32 ile üretmek ve docker compose up -d --build demek. Sonrasında panelin Bağlantı sayfasından QR'ı okutursunuz. Ekran görüntülü, adım adım anlatım ve üretim (Dokploy) ipuçları için Docker ile WhatsApp mesaj kurulumu yazısına geçin.

Etik ve yasal not: Sunucu sizin olsa da sorumluluk da sizindir. Self-hosted bir sistem yalnızca iletişim iznine sahip olduğunuz kişilere bildirim göndermek için kullanılmalıdır. İzinsiz toplu mesaj hem WhatsApp şartlarını hem KVKK (6698) ve ticari elektronik ileti (6563 + İYS) mevzuatını ihlal eder; her pazarlama mesajında bir çıkış (opt-out, örn. "İPTAL yazın") satırı bulunmalıdır. Ayrıntı için KVKK'ya uygun toplu mesaj.

Sık sorulan sorular

Self-hosted WhatsApp mesaj sistemi ne demek?

Yazılımın üçüncü bir sağlayıcının bulutunda değil, sizin kontrolünüzdeki bir sunucuda (genellikle bir VPS) çalışmasıdır. Rehberiniz, mesaj geçmişiniz ve WhatsApp oturumunuz kendi sunucunuzda kalır; kod açık kaynak olduğu için inceleyip genişletebilirsiniz.

Self-hosted için ne kadar teknik bilgi gerekir?

Bir VPS kiralayıp SSH ile bağlanabilmek ve docker compose up çalıştırabilmek yeterlidir. Kod yazmanız gerekmez; kurulum üç komuta indirgenmiştir. Bakım ise ara sıra güncelleme ve sunucuyu izlemekten ibarettir.

Self-hosted mi yoksa SaaS mı daha ucuz?

Hacim arttıkça self-hosted neredeyse her zaman ucuzdur; maliyet sabittir (aylık ~5–10 USD, mesaj başına 0). SaaS'ta fiyat mesaj hacmiyle veya kişi sayısıyla artar.

Minimum sunucu gereksinimi nedir?

Headless Chromium için 2 GB RAM önerilir; 2 vCPU ve 20–40 GB disk yeterlidir. Saat penceresi yerel saate bağlı olduğundan sunucu zaman dilimini TZ=Europe/Istanbul yapmak önemlidir.

Kendi sunucunuzda WhatsApp mesaj sistemini kurun

Verisi sizde, mesaj başına ücreti sıfır, tamamen kontrolünüzde. Üç komutla kurun, QR okutun, göndermeye başlayın.

Panele Git →