Hoe u uw lokale WordPress- of Drupal-site deelt met Cloudflare Tunnel (Gratis)
Wanneer je lokaal ontwikkelt met DDEV, moet je je werk mogelijk delen met klanten, webhooks van externe services testen of samenwerken met externe teamleden. Cloudflare Tunnel biedt een veilige, eenvoudige manier om je lokale ontwikkelingssites bloot te stellen aan het internet zonder firewallpoorten te openen of complexe netwerkconfiguraties te hoeven beheren.
Wat is Cloudflare Tunnel?
Cloudflare Tunnel (voorheen Argo Tunnel) maakt deel uit van Cloudflare's Zero Trust-netwerkoplossing. Het creëert een veilige, uitsluitend uitgaande verbinding van je lokale machine naar het edge-netwerk van Cloudflare, dat vervolgens openbaar verkeer naar je lokale services leidt. Dit betekent:
- Geen geopende inkomende poorten - Je firewall blijft veilig
- Geen openbaar IP vereist - Werkt achter NAT en bedrijfsfirewalls
- Gratis voor ontwikkelingsgebruik - De snelle tunnels van Cloudflare zijn gratis
- HTTPS standaard - Automatische SSL/TLS-versleuteling
- Eenvoudige installatie - Slechts één opdracht om te beginnen
Wat is DDEV?
DDEV is een Docker-gebaseerde lokale ontwikkelomgeving die het eenvoudig maakt om PHP-projecten (Drupal, WordPress, Laravel, enz.) op te zetten met minimale configuratie. Het biedt:
- Vooraf geconfigureerde containers voor web, database en andere services
- Ondersteuning voor meerdere PHP-versies
- Ingebouwde SSL-certificaten voor lokale HTTPS
- Opdrachtregeltools voor veelvoorkomende ontwikkelingstaken
Door DDEV met Cloudflare Tunnel te gebruiken, kun je je site lokaal draaien en deze openbaar delen wanneer nodig.
Vereisten
Voordat we beginnen, zorg ervoor dat je het volgende hebt:
- Een Mac-, Linux- of Windows-machine met Docker geïnstalleerd
- DDEV geïnstalleerd en geconfigureerd (officiële installatiegids of bekijk mijn gids voor het instellen van DDEV voor WordPress en Drupal)
- Een werkend DDEV-project (we gebruiken voorbeeldwebsites zoals
myproject.ddev.site
enclient-site.ddev.site
) - Basiskennis van de opdrachtregel
- Geen Cloudflare-account vereist voor snelle tunnels (de methode die in deze handleiding wordt behandeld)
Opmerking: Als je persistente URL's met aangepaste domeinen wilt (later behandeld), heb je een gratis Cloudflare-account nodig.
Stap 1: Cloudflared installeren
De cloudflared
daemon is de client die de tunnelverbinding maakt. De installatie verschilt per platform:
macOS (Homebrew)
brew install cloudflared
Linux (Debian/Ubuntu)
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb
Linux (RHEL/CentOS)
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm
sudo rpm -i cloudflared-linux-x86_64.rpm
Windows
Download de installer van de downloadpagina van Cloudflare of gebruik Chocolatey:
choco install cloudflared
Controleer de installatie:
cloudflared --version
Stap 2: Je DDEV-site starten
Zorg ervoor dat je DDEV-project actief is. Navigeer naar je projectmap en start DDEV:
cd /pad/naar/jouw/project
ddev start
Je site is lokaal bereikbaar via iets als https://jouwproject.ddev.site
. Controleer of het werkt door het in je browser te openen.
Stap 3: Een Cloudflare Tunnel maken naar je DDEV-site
Hier wordt het interessant. Voer één opdracht uit en cloudflared maakt een tunnel met automatisch een openbare URL. Geen accountinstelling, geen authenticatie, geen configuratie nodig. De basis-syntaxis is:
cloudflared tunnel --url <lokale-url> --http-host-header <hostnaam>
Voorbeeld 1: Mijn Project Site
cloudflared tunnel --url https://myproject.ddev.site/ --http-host-header myproject.ddev.site
Voorbeeld 2: Klant Site
cloudflared tunnel --url https://client-site.ddev.site/ --http-host-header client-site.ddev.site
Nadat je deze opdracht hebt uitgevoerd, zie je uitvoer zoals:
2025-10-14T10:30:15Z INF Bedankt voor het proberen van Cloudflare Tunnel. Dit te doen zonder een Cloudflare-account is een snelle manier om te experimenteren en het uit te proberen. Wees er echter van bewust dat deze tunnels zonder account geen uptimegarantie hebben. Als je van plan bent Tunnels in productie te gebruiken, moet je een vooraf gemaakte benoemde tunnel gebruiken door te volgen: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/
2025-10-14T10:30:15Z INF Nieuwe snelle Tunnel aanvragen op trycloudflare.com...
2025-10-14T10:30:16Z INF +--------------------------------------------------------------------------------------------+
2025-10-14T10:30:16Z INF | Je snelle Tunnel is aangemaakt! Bezoek deze op (het kan even duren voordat deze bereikbaar is): |
2025-10-14T10:30:16Z INF | https://randomly-generated-subdomain.trycloudflare.com |
2025-10-14T10:30:16Z INF +--------------------------------------------------------------------------------------------+
Kopieer de gegenereerde URL (bijv. https://randomly-generated-subdomain.trycloudflare.com
) en deel deze met iedereen die toegang nodig heeft tot je lokale site!
De opdrachtparameters begrijpen
Laten we de betekenis van elke parameter bekijken:
--url
: De lokale URL waarop je DDEV-site draait. Gebruik HTTPS als je DDEV-site SSL gebruikt (wat standaard het geval is).--http-host-header
: Dit is cruciaal voor DDEV. Het vertelt cloudflared om de juiste hostnaam door te sturen in de HTTP Host-header. DDEV leidt verzoeken op basis van deze header, dus zonder deze krijg je een "404 Not Found" of zie je de verkeerde site.
Waarom is --http-host-header noodzakelijk?
De router van DDEV gebruikt virtueel hosten, wat betekent dat meerdere sites op hetzelfde IP-adres en dezelfde poort kunnen draaien. De router bepaalt welke site moet worden geserveerd op basis van de Host
-header in het HTTP-verzoek.
Wanneer verkeer via Cloudflare Tunnel binnenkomt, zou de Host-header normaal gesproken het door Cloudflare gegenereerde domein zijn (zoals randomly-generated-subdomain.trycloudflare.com
). Door --http-host-header myproject.ddev.site
op te geven, overschrijven we dit en zorgen we ervoor dat DDEV de juiste hostnaam ziet.
Benoemde tunnels gebruiken voor persistente URL's
De bovenstaande methode voor snelle tunnels is perfect voor ad-hoc delen, maar de URL verandert elke keer dat je de opdracht uitvoert en er is geen uptimegarantie. Als je een persistente URL nodig hebt met je eigen aangepaste domein (zoals mijnproject.example.com
), kun je een benoemde tunnel maken. Dit vereist een gratis Cloudflare-account.
1. Authenticeren bij Cloudflare
cloudflared tunnel login
Dit opent een browser om te authenticeren met je Cloudflare-account.
2. Een benoemde tunnel maken
cloudflared tunnel create mijn-ddev-tunnel
Dit genereert een tunnel-ID en een credentialsbestand.
3. Een configuratiebestand maken
Maak ~/.cloudflared/config.yml
aan:
tunnel: <TUNNEL-ID>
credentials-file: /Users/jouwgebruikersnaam/.cloudflared/<TUNNEL-ID>.json
ingress:
- hostname: mijnsite.example.com
service: https://myproject.ddev.site
originRequest:
httpHostHeader: myproject.ddev.site
noTLSVerify: true
- service: http_status:404
Opmerking: noTLSVerify: true
is nodig omdat DDEV zelfondertekende certificaten gebruikt.
4. Je domein routeren
cloudflared tunnel route dns mijn-ddev-tunnel mijnsite.example.com
5. De tunnel uitvoeren
cloudflared tunnel run mijn-ddev-tunnel
Je site is nu toegankelijk via https://mijnsite.example.com
met een persistente URL!
Veelvoorkomende gebruiksscenario's
1. Klantdemo's
Deel werk-in-uitvoering sites met klanten zonder te implementeren op staging-servers:
cloudflared tunnel --url https://client-demo.ddev.site/ --http-host-header client-demo.ddev.site
Stuur de gegenereerde URL naar je klant voor onmiddellijke feedback.
2. Webhook testen
Test webhooks van services zoals Stripe, GitHub of Twilio die een openbare URL vereisen:
cloudflared tunnel --url https://webhooks.ddev.site/ --http-host-header webhooks.ddev.site
Configureer de webhook in de externe service om naar je Cloudflare-URL te wijzen.
3. Testen op mobiele apparaten
Test je responsieve ontwerpen op echte mobiele apparaten zonder op hetzelfde netwerk te zijn:
cloudflared tunnel --url https://mobile-test.ddev.site/ --http-host-header mobile-test.ddev.site
Open de Cloudflare-URL op je telefoon om op echte apparaten te testen.
4. Externe samenwerking
Deel je ontwikkelomgeving met externe teamgenoten:
cloudflared tunnel --url https://team-collab.ddev.site/ --http-host-header team-collab.ddev.site
Je team kan toegang krijgen tot de site alsof ze deze lokaal draaien.
Probleemoplossing
Een 404 of verkeerde site ontvangen
Zorg ervoor dat je de parameter --http-host-header
gebruikt met de juiste DDEV-hostnaam:
cloudflared tunnel --url https://mysite.ddev.site/ --http-host-header mysite.ddev.site
SSL-certificaatfouten
Als je een benoemde tunnel gebruikt met een configuratiebestand, voeg dan noTLSVerify: true
toe aan de sectie voor oorsprongsverzoeken, aangezien DDEV zelfondertekende certificaten gebruikt.
Tunnel start niet
Controleer of cloudflared al actief is:
ps aux | grep cloudflared
Beëindig bestaande processen indien nodig:
pkill cloudflared
DDEV-site lokaal niet bereikbaar
Controleer of je DDEV-site actief is:
ddev describe
Zorg ervoor dat de URL die je gebruikt overeenkomt met de uitvoer.
Beveiligingsoverwegingen
Hoewel Cloudflare Tunnel inherent veilig is, houd rekening met de volgende punten:
- Stel productie-databases niet bloot - Tunnel alleen ontwikkelingssites met niet-gevoelige gegevens
- Snelle tunnels zijn tijdelijk - URL's verlopen en moeten niet worden vertrouwd voor productie
- Gebruik authenticatie - Voor gevoelige projecten voeg je Cloudflare Access-authenticatie toe aan je benoemde tunnels
- Tunneltoegang monitoren - Controleer Cloudflare Analytics om te zien wie toegang heeft tot je tunnels
- Tunnels afsluiten wanneer klaar - Gebruik Ctrl+C om de tunnel te stoppen wanneer je klaar bent
Alternatief: DDEV's ingebouwde deelopdracht
DDEV heeft ook een ingebouwde opdracht ddev share
die gebruikmaakt van ngrok. Cloudflare Tunnel biedt echter verschillende voordelen:
- Gratis zonder snelheidslimieten (ngrok gratis niveau heeft limieten)
- Betere prestaties via het wereldwijde netwerk van Cloudflare
- Integratie met Cloudflare Zero Trust voor geavanceerde functies
- Persistente benoemde tunnels met aangepaste domeinen
Desalniettemin is ddev share
nog eenvoudiger als je gewoon iets snels nodig hebt en geen extra tools wilt installeren.
Het proces vereenvoudigen met ddev-share-cf
Om dit proces nog eenvoudiger te maken, heb ik de ddev-share-cf DDEV-addon gemaakt. Deze addon integreert Cloudflare Tunnel rechtstreeks in DDEV, waardoor je je lokale sites kunt delen met een eenvoudige opdracht zonder handmatig cloudflared of configuratiebestanden te beheren.
Installatie
Installeer de addon met één opdracht:
ddev get davo20019/ddev-share-cf
Gebruik
Eenmaal geïnstalleerd, voer je eenvoudig uit:
ddev share-cf
De addon beheert alle tunnelconfiguratie automatisch, waardoor het net zo eenvoudig wordt als de ingebouwde deelopdracht van DDEV, maar met alle voordelen van Cloudflare Tunnel.