﻿﻿{"id":2207,"date":"2026-01-29T10:28:53","date_gmt":"2026-01-29T09:28:53","guid":{"rendered":"https:\/\/elearningsamba.com\/index.php\/webhooks-proxy-tunnel-vos-webhooks-en-local-sans-payer-ngrok\/"},"modified":"2026-01-29T10:28:53","modified_gmt":"2026-01-29T09:28:53","slug":"webhooks-proxy-tunnel-vos-webhooks-en-local-sans-payer-ngrok","status":"publish","type":"page","link":"https:\/\/elearningsamba.com\/index.php\/webhooks-proxy-tunnel-vos-webhooks-en-local-sans-payer-ngrok\/","title":{"rendered":"Webhooks Proxy Tunnel \u2013 Vos webhooks en local sans payer Ngrok"},"content":{"rendered":"<p>Ce matin, je cherchais un moyen simple de tester des webhooks en local sans passer par<br \/>\n<a href=\"https:\/\/korben.info\/ngrok-creer-un-tunnel-pour-vos-applications-locale.html\">ce bon vieux Ngrok<\/a><br \/>\nqui est devenu un peu relou avec ses limites en version gratuite. J&#8217;ai d&#8217;abord pens\u00e9 \u00e0 monter mon propre serveur VPN (coucou Tailscale), mais franchement flemme.<\/p>\n<p>Et puis tout \u00e0 fait par hasard (aaah les joies de la s\u00e9rendipit\u00e9) je suis tomb\u00e9 sur cet outil qui devrait vous plaire, surtout si vous d\u00e9veloppez des applis qui doivent recevoir des notifications HTTP (GitHub, Stripe, Slack&#8230;). Ben oui vous connaissez la gal\u00e8re&#8230; votre serveur de dev est sur &#8220;localhost&#8221;, donc inaccessible depuis l&#8217;ext\u00e9rieur, du coup, impossible de recevoir ces fameux webhooks sans ouvrir votre routeur ou utiliser un tunnel.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/webhooks-proxy-tunnel-local-ngrok\/webhooks-proxy-tunnel-local-ngrok-1.jpeg\" alt=\"\" loading=\"lazy\"><\/p>\n<p>C&#8217;est l\u00e0 qu&#8217;intervient<br \/>\n<a href=\"https:\/\/github.com\/peter-leonov\/webhooks-proxy-tunnel\">Webhooks Proxy Tunnel<\/a><br \/>\n!<\/p>\n<p>Gr\u00e2ce \u00e0 cet outil, au lieu de multiplier les interm\u00e9diaires, vous d\u00e9ployez votre propre tunnel&#8230; directement sur l&#8217;infrastructure de Cloudflare. Et le meilleur c&#8217;est que \u00e7a tourne g\u00e9n\u00e9ralement tr\u00e8s bien sur leur offre gratuite (dans la limite des quotas Workers \u00e9videmment, donc attention si vous bourrinez comme un fifou).<\/p>\n<p>L&#8217;outil utilise un Cloudflare Worker coupl\u00e9 \u00e0 un Durable Object (une sorte de mini-serveur d&#8217;\u00e9tat). Le Worker re\u00e7oit alors les requ\u00eates publiques sur une URL en HTTPS (genre &#8220;truc.workers.dev&#8221;) et les transmet via une WebSocket \u00e0 un petit client Node.js qui tourne sur votre machine. Et hop, le trafic arrive sur votre port local.<\/p>\n<p>Perso, je trouve \u00e7a brillant car m\u00eame si le trafic passe techniquement par Cloudflare (puisque c&#8217;est leur infra), vous gardez la main sur le code qui s&#8217;ex\u00e9cute et vous \u00e9vitez d&#8217;envoyer vos donn\u00e9es \u00e0 un service tiers suppl\u00e9mentaire dont vous ignorez tout.<\/p>\n<p>Pour l&#8217;installer, ne plus c&#8217;est hyper fastoche. Il vous faut juste un compte Cloudflare et Node.js. J&#8217;ai test\u00e9 l&#8217;install en moins de 5 minutes, vous clonez le d\u00e9p\u00f4t, vous installez les d\u00e9pendances et vous lancez le d\u00e9ploiement (qui vous demandera de vous authentifier) :<\/p>\n<div class=\"highlight\">\n<pre class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">git clone https:\/\/github.com\/peter-leonov\/webhooks-proxy-tunnel.git\n<\/span><\/span><span class=\"line\"><span class=\"cl\">cd webhooks-proxy-tunnel\/worker\n<\/span><\/span><span class=\"line\"><span class=\"cl\">npm install\n<\/span><\/span><span class=\"line\"><span class=\"cl\">npm run deploy\n<\/span><\/span><\/code><\/pre>\n<p>Une fois d\u00e9ploy\u00e9, le script vous donne une URL et il ne vous reste plus alors qu&#8217;\u00e0 lancer le client local en lui disant o\u00f9 taper (par exemple votre port 3000) et le tour est jou\u00e9 !! Vous pouvez m\u00eame g\u00e9rer plusieurs tunnels en parall\u00e8le si vous bossez sur plusieurs projets, chaque tunnel ayant son ID unique.<\/p>\n<p>Attention quand m\u00eame, c&#8217;est con\u00e7u pour du d\u00e9veloppement hein, pas pour streamer de la 4K. Les requ\u00eates doivent tenir en m\u00e9moire (limite de 100 Mo environ) donc sauf si vous transf\u00e9rez des fichiers \u00e9normes via vos webhooks, \u00e7a passera cr\u00e8me pour du JSON ou des petits payloads binaires.<\/p>\n<p>Voil\u00e0, si vous cherchiez une alternative self-hosted et gratuite pour vos tests, c&#8217;est clairement un outil \u00e0 garder sous le coude. Et si vous avez besoin de trucs plus costauds pour du r\u00e9seau d&#8217;entreprise, jetez un \u0153il \u00e0<br \/>\n<a href=\"https:\/\/korben.info\/tailscale-reseau-prive-virtuel.html\">Tailscale<\/a><br \/>\nou<br \/>\n<a href=\"https:\/\/korben.info\/octelium-zero-trust-open-source-vpn-alternative.html\">Octelium<\/a><br \/>\n.<\/p>\n<p>\n<a href=\"https:\/\/github.com\/peter-leonov\/webhooks-proxy-tunnel\">Source<\/a>\n<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Ce matin, je cherchais un moyen simple de tester des webhooks en local sans passer par ce bon vieux Ngrok qui est devenu un peu relou avec ses limites en version gratuite. J&#8217;ai d&#8217;abord pens\u00e9 \u00e0 monter mon propre serveur VPN (coucou Tailscale), mais franchement flemme. Et puis tout \u00e0 fait par hasard (aaah les joies de la s\u00e9rendipit\u00e9) je suis tomb\u00e9 sur cet outil qui devrait vous plaire, surtout si vous d\u00e9veloppez des applis qui doivent recevoir des notifications HTTP (GitHub, Stripe, Slack&#8230;). Ben oui vous connaissez la gal\u00e8re&#8230; votre serveur de dev est sur &#8220;localhost&#8221;, donc inaccessible depuis l&#8217;ext\u00e9rieur, du coup, impossible de recevoir ces fameux webhooks sans ouvrir votre routeur ou utiliser un tunnel. C&#8217;est l\u00e0 qu&#8217;intervient Webhooks Proxy Tunnel ! Gr\u00e2ce \u00e0 cet outil, au lieu de multiplier les interm\u00e9diaires, vous d\u00e9ployez votre propre tunnel&#8230; directement sur l&#8217;infrastructure de Cloudflare. Et le meilleur c&#8217;est que \u00e7a tourne g\u00e9n\u00e9ralement tr\u00e8s bien sur leur offre gratuite (dans la limite des quotas Workers \u00e9videmment, donc attention si vous bourrinez comme un fifou). L&#8217;outil utilise un Cloudflare Worker coupl\u00e9 \u00e0 un Durable Object (une sorte de mini-serveur d&#8217;\u00e9tat). Le Worker re\u00e7oit alors les requ\u00eates publiques sur une URL en HTTPS (genre &#8220;truc.workers.dev&#8221;) et les transmet via une WebSocket \u00e0 un petit client Node.js qui tourne sur votre machine. Et hop, le trafic arrive sur votre port local. Perso, je trouve \u00e7a brillant car m\u00eame si le trafic passe techniquement par Cloudflare (puisque c&#8217;est leur infra), vous gardez la main sur le code qui s&#8217;ex\u00e9cute et vous \u00e9vitez d&#8217;envoyer vos donn\u00e9es \u00e0 un service tiers suppl\u00e9mentaire dont vous ignorez tout. Pour l&#8217;installer, ne plus c&#8217;est hyper fastoche. Il vous faut juste un compte Cloudflare et Node.js. J&#8217;ai test\u00e9 l&#8217;install en moins de 5 minutes, vous clonez le d\u00e9p\u00f4t, vous installez les d\u00e9pendances et vous lancez le d\u00e9ploiement (qui vous demandera de vous authentifier) : git clone https:\/\/github.com\/peter-leonov\/webhooks-proxy-tunnel.git cd webhooks-proxy-tunnel\/worker npm install npm run deploy Une fois d\u00e9ploy\u00e9, le script vous donne une URL et il ne vous reste plus alors qu&#8217;\u00e0 lancer le client local en lui disant o\u00f9 taper (par exemple votre port 3000) et le tour est jou\u00e9 !! Vous pouvez m\u00eame g\u00e9rer plusieurs tunnels en parall\u00e8le si vous bossez sur plusieurs projets, chaque tunnel ayant son ID unique. Attention quand m\u00eame, c&#8217;est con\u00e7u pour du d\u00e9veloppement hein, pas pour streamer de la 4K. Les requ\u00eates doivent tenir en m\u00e9moire (limite de 100 Mo environ) donc sauf si vous transf\u00e9rez des fichiers \u00e9normes via vos webhooks, \u00e7a passera cr\u00e8me pour du JSON ou des petits payloads binaires. Voil\u00e0, si vous cherchiez une alternative self-hosted et gratuite pour vos tests, c&#8217;est clairement un outil \u00e0 garder sous le coude. Et si vous avez besoin de trucs plus costauds pour du r\u00e9seau d&#8217;entreprise, jetez un \u0153il \u00e0 Tailscale ou Octelium . Source<\/p>\n","protected":false},"author":1,"featured_media":2208,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"give_campaign_id":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kadence_starter_templates_imported_post":false,"footnotes":""},"class_list":["post-2207","page","type-page","status-publish","has-post-thumbnail","hentry"],"campaignId":"","_links":{"self":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/comments?post=2207"}],"version-history":[{"count":0,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2207\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media\/2208"}],"wp:attachment":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media?parent=2207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}