Many developers start with browser‑based tools such as Selenium or Puppeteer to drive WhatsApp Web. Those tools launch a full Chrome instance, which can consume hundreds of megabytes of RAM and requires a persistent VNC or headless environment. The memory and CPU cost quickly becomes a barrier for hobby projects or for scaling dozens of bots on a single VPS.
Baileys tarayıcı katmanını ortadan kaldırır
Baileys, WhatsApp Web ikili protokolüyle WebSocket’ler üzerinden doğrudan iletişim kurar ve grafiksel bir tarayıcı ihtiyacını ortadan kaldırır [6]. Sadece WebSocket istemcisi çalıştığı için bellek kullanımı birkaç megabayta düşer ve CPU yükü düşük kalır. Pratikte, 1 vCPU ve 2 GB RAM’lik mütevazı bir VPS, performans sorunu yaşamadan bir Baileys botunu barındırabilir [7]. Bu verimlilik aynı zamanda saldırı yüzeyini de azaltır: endişelenecek tarayıcı açıkları yoktur.
Baileys’ı Cloudflare Workers Üzerinde Dağıtmak
whatsapp‑cloudflare‑workers projesi, Baileys’ı Cloudflare’ın kenar (edge) çalışma ortamına uyarlıyor. Kütüphaneyi küçük Worker çalışma ortamıyla paketleyen ve kenarda bulunmayan Node‑özel API’lerini kaldıran bir fork’tur [1][2]. Worker, WhatsApp’a doğrudan bir WebSocket bağlantısı açar, kısa bir süre (genellikle 10–50 saniye) tutar, gerekli eylemi (numara kaydı ya da mesaj gönderimi) gerçekleştirir ve ardından kaynakları serbest bırakmak için soketi kapatır [1][2]. Bu desen, Workers’ın durum‑sız (stateless) doğasına uyar ve kenarda uzun‑ömürlü bağlantıları tutmanın maliyetinden kaçınır.
Örnek iş akışı
- Trigger – Worker’a gelen bir HTTP isteği hedef telefon numarasını ve mesaj yükünü içerir.
- Connect – Worker, bir Baileys WebSocket oturumu başlatır.
- Send – Mesaj, resmi web istemcisinin kullandığı aynı protokol üzerinden iletilir.
- Close – Yanıt alındıktan sonra soket sonlandırılır, böylece tipik bir Worker’ın 10 ms CPU sınırı içinde kalınır.
Resmi API’ye göre maliyet ve politika avantajları
Resmi WhatsApp Business API (WABA), şirket doğrulaması, şablon‑mesaj onayı ve mesaj başına ücret (genellikle yaklaşık $0.005) gerektirir [7]. Bu gereksinimler hem idari yük hem de sürekli maliyet ekler. Buna karşılık, kendi kendine barındırılan bir Baileys çözümü şablon denetimini atlar ve mesaj başı ücretleri ortadan kaldırır; böylece geliştiricilere mesaj içeriği üzerinde tam özgürlük tanır [7]. WABA garantili teslimat ve destek sağlarken, maliyetin birincil endişe olduğu birçok küçük‑orta ölçekli proje bu takası kabul edilebilir bulur.
Kenarda kaynak verimliliği ve ölçekleme
Baileys bir tarayıcı başlatmadığı için tek bir kenar worker’ı birçok kısa ömürlü oturumu yönetebilir. Yatay ölçekleme—onlarca aynı örneği ayağa kaldırmak—mütevazı trafik için gereksizdir. Bunun yerine, geliştiriciler çıkış mesajlarını dayanıklı bir depoda (ör. Cloudflare KV veya üçüncü‑taraf kuyruk) sıraya koyabilir ve her Worker’ın bir işi alıp mesajı gönderip çıkmasını sağlayabilir. Bu kuyruk‑tabanlı model, sistemi hafif tutarken ani trafik artışlarını da destekler [1][2].
Tavizler
| Özellik | Tarayıcı otomasyonu | Workers üzerindeki Baileys |
|---|---|---|
| Bellek | Bot başına yüzlerce MB | < 10 MB |
| CPU | Yüksek (Chrome) | Düşük (sadece WebSocket) |
| Maliyet | VPS + Chrome lisansı (varsa) | Kullanım başına Worker çağrıları |
| Teslimat garantileri | Chrome stabilitesine bağlı | WhatsApp Web protokolü ile aynı |
| Karmaşıklık | Başsız tarayıcıları yönetmek | Kısa ömürlü Workers’ı yönetmek |
Başlarken Pratik İpuçları
- Baileys belgelerini okuyun; kimlik doğrulama akışlarını ve QR‑kod işleme süreçlerini anlamak için [6].
- Worker fork’ını klonlayın ve
wrangler publishile dağıtın – depoda hızlı kurulum için hazır birwrangler.tomlbulunur [1][2]. - Kimlik bilgilerini güvenli bir şekilde saklayın; Cloudflare Secrets kullanın, worker çalışma zamanında bunları alır.
- Bir kuyruk uygulayın (ör. Cloudflare Workers Queues) mesajları kenar fonksiyonuna beslemek için, böylece 10‑saniyelik yürütme penceresini aşmazsınız.
- Kullanımı izleyin Cloudflare analizleri aracılığıyla; platform istek sayısını ve CPU süresini raporlar, bütçenizi aşmamanıza yardımcı olur.
Baileys’in hafif WebSocket istemcisi ile Cloudflare Workers’ın küresel kenar ağı birleştirildiğinde, geliştiriciler tarayıcı otomasyonunun ağır yükü olmadan hem maliyet‑etkin hem de yüksek yanıtlı WhatsApp botları oluşturabilir.
Kaynaklar
[1] GitHub – Baileys’ın whatsapp‑cloudflare‑workers fork’u. [2] Cloudflare Workers projesinin README’si. [6] Baileys belgeleri. [7] Kendi kendine barındırılan Baileys botları ile WABA karşılaştırması üzerine blog yazısı.
Kaynaklar
- GitHub - pierangelo04/whatsapp-cloudflare-workers: A version of Baileys …
- whatsapp-cloudflare-workers/README.md at master - GitHub
- WhatsApp bot on VPS via Baileys: free instead of WhatsApp
- Baileys - Baileys
- whatsapp-cloudflare-workers - npm Package Security Analysis … - Socket
- whatsapp-cloudflare-workers 6.7.17-worker-1.0.3 on npm - Libraries.io
- Introducing @zervonex/baileys - A Tailored Fork of the Baileys WhatsApp …
- workers.dev · Cloudflare Workers docs