FOR WEBHOOKS nodetonet.com
Use case Webhooks Dev tooling

Webhook geliştirme için Nodetonet — localhost'u gerçek bir HTTPS URL'sine tünelle

Deploy etmeden yerel sunucunuzda Stripe, GitHub ve Slack webhook'ları geliştirin — stabil HTTPS URL, otomatik Let's Encrypt sertifikası, denetim kaydı ve ngrok ile dürüst karşılaştırma.

N Nodetonet Team
15 Mayıs 2026 8 dk okuma

Webhook geliştirme, modern arka uç programlamanın en sancılı köşelerinden biridir. Stripe bir checkout.session.completed gönderiyor. GitHub bir pull_request tetikliyor. Slack slash komutuna ping atıyor. Hiçbiri laptop'unuzdaki localhost:3000'e ulaşamıyor; bu yüzden standart akış şöyle: staging'e deploy et, eventi tetikle, log'ları izle, hatayı bul, tekrar push et — yineleme başına 3-5 dakikalık ve konsantrasyonu yerle bir eden bir döngü.

Kısa özet: Nodetonet PC ajanını yükleyin, port 3000'e bir HTTPS tüneli oluşturun, stabil public URL'i Stripe veya GitHub'a bir kez yapıştırın; o andan itibaren her webhook milisaniyeler içinde yerel breakpoint'inize çarpar — yeniden deploy yok, staging gecikmesi yok.

Deploy döngüsü neden sizi zamandan fazlasına mâl oluyor

Staging'e her round-trip bir konsantrasyon kırılmasıdır. Log'lar gelene kadar zaten başka bir şeye geçmişsinizdir. Daha kötüsü, staging'de breakpoint koyamazsınız; uzaktan debugger bağlamak ya da kodu console.log ifadeleriyle doldurmak zorundasınız. Aralıklı webhook hatalarını yeniden üretmek de neredeyse imkânsızdır — idempotency hataları, sıra dışı tekrar denemeler, handler'ınız ile sağlayıcının yeniden deneme planı arasındaki yarış koşulları — çünkü belirli bir imzalı teslimi istediğinizde yerel kodunuza karşı replay edemezsiniz.

Bir tünel tüm döngüyü "dosyayı kaydet, test eventi tetikle, breakpoint'e düş" olarak çökertir. İşte webhook sağlayıcıların sahip olmanızı beklediği geliştirici deneyimi budur.

Nodetonet webhook geliştirme iş akışına nasıl oturuyor

Nodetonet'in HTTP tünel özelliği, dev makinenizdeki herhangi bir yerel portu kalıcı bir public HTTPS URL'si olarak sunar. stripe-dev.adınız.nodetonet.com gibi stabil bir subdomain seçebilir ya da kendi domain'inizi getirebilirsiniz. URL, laptop uyuduğunda değişmez, tünel ajanını yeniden başlattığınızda değişmez, kodlama oturumları arasında değişmez. Stripe, GitHub ve Slack'i bir kez yapılandırın ve webhook konfigürasyonuna bir daha dokunmayın.

Adım adım kurulum

  1. /auth/register'a kaydolun ve küçük bir miktar ön ödemeli kredi yükleyin.
  2. PC ajanını /download'dan indirip yükleyin. Windows, macOS veya Linux'ta sistem tepsisinde çalışır ve 30 MB'ın altında RAM kullanır.
  3. Panelde HTTP Tünelleri bölümünden yeni bir tünel oluşturun. Kaynak makine: dev PC'niz. Yerel port: 3000 (veya dev sunucunuzun kullandığı port). Public hostname: ücretsiz subdomain veya kendi domain'iniz.
  4. Oluşturulan HTTPS URL'ini kopyalayın. Stripe Dashboard'da Developers → Webhooks'a ya da GitHub → Settings → Webhooks'a ya da Slack'in slash komut istek URL'sine yapıştırın.
  5. Sağlayıcının arayüzünden bir test eventi tetikleyin. 200 ms içinde IDE'niz breakpoint'e düşer. İstediğiniz kadar iterasyon yapın.

Kod örneği — Stripe webhook imzasını doğrulama

Aşağıdaki handler localhost:3000'da çalışır. Tünel üzerinden sergileyin ve URL'ini Stripe'a yapıştırın. Kritik nokta, bu tek rotada express.raw kullanmaktır; böylece Stripe'ın HMAC imza kontrolü orijinal baytlara karşı çalışır:

// server.js
const express = require('express');
const stripe = require('stripe')(process.env.STRIPE_SECRET);
const app = express();
const SECRET = process.env.STRIPE_WEBHOOK_SECRET;

app.post('/webhook',
  express.raw({ type: 'application/json' }),
  (req, res) => {
    let event;
    try {
      event = stripe.webhooks.constructEvent(
        req.body, req.headers['stripe-signature'], SECRET
      );
    } catch (err) {
      return res.status(400).send('Hatalı imza');
    }
    console.log('Event alındı:', event.type, event.data.object.id);
    // Buraya breakpoint koyun ve yeniden deploy etmeden iterasyon yapın
    res.json({ received: true });
  }
);

app.listen(3000, () => console.log(':3000 dinleniyor'));

Stripe Dashboard'da endpoint olarak https://stripe-dev.adınız.nodetonet.com/webhook yazın. "Send test webhook"a tıklayın. Process 200 ms içinde eventi loglar. Handler'ı değiştirin, kaydedin; hot-reload sayesinde bir sonraki test eventi güncel kodunuza anında çarpar — yeniden deploy olmadan.

Webhook geliştirme için Nodetonet ile ngrok karşılaştırması

Her iki araç da yerel portları public HTTPS URL'lerine tünelliyor. Aşağıdaki tablo, tipik bir webhook geliştirme iş akışı için önemli olan farkları kapsamaktadır. ngrok'un kamuya açık belgelerindeki özellikleri doğru ve dürüst biçimde açıkladık — bu tek taraflı bir karşılaştırma değil.

Özellik Nodetonet ngrok Ücretsiz ngrok Personal (aylık $8)
Stabil public URL Evet — subdomain veya özel domain Rastgele URL, her oturumda değişir Evet — rezerve domain
Otomatik HTTPS / TLS sertifikası Evet, Let's Encrypt, wildcard Evet Evet
Özel domain (kendi CNAME) Evet, ekstra ücret yok Hayır Evet
İstek denetim kaydı 30 günlük log, panel + REST API Yalnızca oturum inspector'ı Genişletilmiş inspector
Tek tıkla Replay Henüz yok (yol haritasında) Evet (web inspector) Evet (web inspector)
IP izin listesi Evet — yerleşik, tünel başına Hayır Evet (IP politikası)
Boşta kalma maliyeti Sıfır — ön ödemeli kredi, abonelik yok Ücretsiz katman (sınırlı) Kullanımdan bağımsız aylık $8
Aynı anda birden fazla port Evet — tünel başına bir port, kullanım başına ücretlendirme Ücretsiz katmanda 1 tünel Evet

Dürüst özet: ngrok'un tek tıkla Replay'i, Nodetonet'in henüz sahip olmadığı özelliktir. GUI üzerinden belirli imzalı webhook teslimatlarını replay etmek günlük hata ayıklama rutininizin bir parçasıysa, bu spesifik görev için ngrok Personal şu an daha güçlü seçimdir. Stabil URL'ler, özel domain'ler, IP kısıtlaması ve maliyet verimliliği açısından Nodetonet rekabetçidir — özellikle mobil proxy'ler veya rotating proxy'ler için zaten Nodetonet kullanıyorsanız ve her şey için tek bir platform istiyorsanız. Daha fazlası için Nodetonet vs ngrok tam karşılaştırmasına bakın.

Denetim kaydını manuel Replay olarak kullanma

Tek tıkla UI yol haritasında olsa da paneldeki 30 günlük denetim kaydı, herhangi bir teslimi yeniden üretmek için ham malzemeyi zaten sunuyor. Kaydedilen her istek tam header'ları ve payload'ı içerir. Buradan, tek bir curl komutuyla yerel sunucunuza karşı yeniden tetikleyebilirsiniz:

# Belirli bir tünel isteğinin ham gövdesini getir
curl -s -H "Authorization: Bearer $NTN_KEY"   "https://nodetonet.com/api/v1/proxies/prx_abc123/requests/req_xyz789"   | jq -r '.data.body'   | curl -X POST http://localhost:3000/webhook        -H "Content-Type: application/json"        -H "Stripe-Signature: $(cat .stripe-sig)"        -d @-

Bir buton tıklamasından biraz daha fazla tuş gerektirir, ama çalışır ve belirli sorunlu bir teslimatı asla kaybetmemenizi sağlar. Tam sözdizimi için REST API ilk çağrı rehberine ve denetim kaydı rehberine bakın.

Tüneli webhook sağlayıcınıza kilitleme

Public HTTPS URL'i açık bırakmak ilk geliştirme aşamasında kabul edilebilir, ancak uzun süreli kurulum için erişimi bilinen kaynak IP'lerle kısıtlamalısınız. Stripe webhook teslimat IP aralıklarını yayımlar; GitHub onları https://api.github.com/meta üzerinden sunar. Bu CIDR bloklarını paneldeki tünelin IP izin listesine yapıştırın. Bilinmeyen IP'den gelen her istek dev makinenize ulaşmadan 403 alır. Bu yaklaşım, IP izin ve engel listeleri yazımızdaki yöntemle örtüşmektedir.

GitHub ve Slack webhook'larını test etme

Aynı tünel her webhook sağlayıcısına hizmet eder. https://ci.adınız.nodetonet.com/github'a yönlendirilmiş bir GitHub repository webhook'u, kod push'landığı anda yerel CI runner'ınıza event gönderir. https://slack.adınız.nodetonet.com/commands/uygulamam'a yönlendirilmiş bir Slack slash komut URL'si, normal bir staging ortamında mevcut olmayan yerel veritabanı ve dosya sistemi erişimiyle birlikte yanıt payload'ını gerçek zamanlı olarak yerel ortamınızda iterate etmenizi sağlar.

Tünel kurulduktan sonra izleme için tünel sağlığını izleme yazısına, scriptlerden programatik tünel yönetimi için Python'da programatik tünel oluşturma yazısına bakın.

Uygun olmadığı durumlar

Başlayın

Webhook test etmek için deploy etmekten bıktınız mı? Ücretsiz hesap oluşturun, PC ajanını /download'dan yükleyin ve ilk tünelinizi beş dakika içinde çalıştırın. Tam özellik seti için HTTP tünelleri'ne göz atın ya da herhangi bir ödeme sağlayıcısını yönlendirmeden önce tünelin canlı olduğunu doğrulamak için proxy checker'ımızı kullanın.

Sıkça sorulan sorular

Laptop'umu kapatırsam public URL aynı kalır mı?
Evet. Alt alan adı — ya da eklediğiniz herhangi bir özel domain — canlı tünel bağlantısına değil, hesabınıza ayrılır. Laptop'unuzu kapatın, yeniden başlatın, ajanı yeniden çalıştırın; URL değişmemiştir. Stripe ve GitHub webhook konfigürasyonları süresiz olarak geçerli kalır.
Nodetonet'in ngrok'un "Replay" özelliğine benzer bir şeyi var mı?
Henüz tek tıkla bir UI butonu olarak yok — bu public yol haritasında yer alıyor. Bugün son 30 güne ait kaydedilmiş isteklerden herhangi birini REST API üzerinden alabilir ve curl ile yerel sunucunuza karşı yeniden tetikleyebilirsiniz. Birkaç ekstra tuş gerektirir ama orijinal imzalı payload'ı kaybetmeden aynı sonucu elde eder.
Tünele yalnızca Stripe veya GitHub'ın erişebilmesi için kilitleyebilir miyim?
Evet. Panelde tünelin detay sayfasını açın ve bir IP izin listesi ayarlayın. Stripe webhook kaynak IP aralıklarını stripe.com/docs/ips'te yayımlar; GitHub bunları api.github.com/meta üzerinden sunar. CIDR aralıklarını yapıştırın; başka her kaynaktan gelen istek, makinenize ulaşmadan 403 alır.
Aynı tüneli aynı anda birden fazla webhook sağlayıcısı için kullanabilir miyim?
Evet, yerel sunucunuz farklı rotaları işlediği sürece. Stripe'ı /webhook/stripe'a, GitHub'ı /webhook/github'a, Slack'i /webhook/slack'e, hepsini aynı tünel URL'si üzerinde yönlendirebilirsiniz. Her sağlayıcının eventleri doğru rotaya gelir ve yerel handler'ınız normal şekilde işler.
Bir dev tüneli açık tutmak ne kadara mâl olur?
Nodetonet, aylık abonelik olmadan ön ödemeli kredi ile faturalar. Sürekli açık bir dev tüneli ayda yaklaşık $1 tutar. Tüneli hafta sonları veya tatilde durdurursanız yalnızca çalıştığı saatler için ödersiniz. Asgari ücret yoktur ve boştaki tüneller hiçbir şey tutmaz.
HTTP tünellerini kullanmak için Nodetonet mobil proxy'si almam gerekiyor mu?
Hayır. HTTP tünelleri ayrı bir üründür. Dev makinenize hafif bir Windows, macOS veya Linux PC ajanı yüklersiniz — telefon veya SIM gerekmez. Mobil proxy'ler ve HTTP tünelleri, aynı platform içinde bağımsız özelliklerdir ve aynı ön ödemeli kredi bakiyesinden faturalandırılır.
Aynı webhook handler üzerinde çalışan bir takım arkadaşımla bir tünel URL'ini paylaşabilir miyim?
URL'i herkesle paylaşabilirsiniz, ancak tünel tek bir kaynak makineye yönlenir. İkinizin de webhook teslimatlarını yerel olarak alması gerekiyorsa, her dev makinesine yönlenen iki ayrı tünel oluşturun. Sağlayıcıyı her iki URL ile yapılandırın (birden fazla endpoint destekliyorsa) ya da koordineli test için paylaşılan bir staging ortamı kullanın.

Bir webhook'u test etmek için deploy etmeyi bırakın

Tek sabit HTTPS URL. Otomatik sertifika. Peşin kredi, abonelik yok. Kaydolun ve bugün daha hızlı yayınlayın.