* docs: add GitHub Actions tunnel general documentation README.md * docs: add cloudflared quick tunnel guide * Add: add cloudflared quick tunnel workflow * docs: add ngrok tunnel guide * Add: add ngrok tunnel workflow * fix: Update cloudflared-quick.md to add link to related yml file * fix: Update ngrok.md to add related file link * docs: add cloudflared named tunnel guide * Add: add cloudflared named workflow
4.0 KiB
cloudflared Quick Tunnel
Run a Full tunnel for 6 hours with zero account setup beyond GitHub. Cloudflare's free Quick Tunnel service provides a temporary public URL — no Cloudflare account, no API token, no configuration files required.
Prerequisites
- A GitHub account (free)
CodeFull.gsdeployed as a Google Apps Script Web App- No Cloudflare account or ngrok account needed
Setup
Step 1: Create the Repository
- Go to github.com and sign in
- Click the + icon in the top-right corner, then New repository
- Enter a repository name (e.g.,
my-tunnel) - Select Private (recommended — keeps your secrets secure)
- Click Create repository
Step 2: Add the Secret
- In your new repository, go to Settings > Secrets and variables > Actions
- Click New repository secret
- Set Name to
TUNNEL_AUTH_KEY - Set Value to a strong password of your choice
- Click Add secret
You will use this same password later in CodeFull.gs.
Step 3: Add the Workflow
- In your repository, go to the Actions tab
- Click New workflow (or go to the next step)
- Click the set up a workflow yourself link
- Delete the default content (if exists) and paste the contents of
cloudflared-quick.yml[here] - Click Commit changes..., add a commit message, then click Commit changes
The workflow file will be saved to .github/workflows/main.yml.
(name does not matter and you can change it to anything)
Step 4: Run the Workflow
- Go to the Actions tab
- Select Full Tunnel (cloudflared Quick) from the left sidebar
- Click Run workflow > Run workflow
The workflow will start immediately.
Step 5: Get the Tunnel URL
- Click on the running workflow to see live logs
- Wait for the Expose tunnel step to complete (about 15 seconds)
- Look for the
::notice::Tunnel URL:line in the log output - Copy the URL — it will look like
https://random-name.trycloudflare.com
Step 6: Configure CodeFull.gs
Open CodeFull.gs in the Google Apps Script editor and update these constants:
const TUNNEL_SERVER_URL = "https://random-name.trycloudflare.com";
const TUNNEL_AUTH_KEY = "the-secret-you-set-in-step-2";
Deploy: Deploy > New Deployment > Web App.
Copy the new Deployment ID and update your mhrv-rs config.
Step 7: Verify
Use mhrv-rs test or visit https://ipleak.net through your proxy.
How It Works
- GitHub Actions starts a Docker container running
mhrv-tunnel-nodeon port8080 cloudflaredcreates a free Quick Tunnel — a temporary*.trycloudflare.comsubdomain that routes tolocalhost:8080on the runner- The workflow extracts this URL from the
cloudflaredlogs and displays it CodeFull.gsforwards tunnel operations to this URL over HTTPS- The runner stays alive for 6 hours, then shuts down automatically
No DNS configuration, no SSL certificates, no port forwarding — cloudflared
handles everything.
Renewing the Tunnel
The tunnel shuts down after 6 hours. To start a new session:
- Go to the Actions tab
- Select Full Tunnel (cloudflared Quick)
- Click Run workflow > Run workflow
- Copy the new tunnel URL from the logs (it changes each time)
- Update
TUNNEL_SERVER_URLinCodeFull.gsand redeploy
Limitations
- The
*.trycloudflare.comURL changes every time the workflow runs CodeFull.gsmust be updated and redeployed each session- 6-hour maximum per session (GitHub Actions limit)
Troubleshooting
| Problem | Solution |
|---|---|
| Workflow fails at Docker step | GitHub Actions may be pulling the image for the first time. Wait 2-3 minutes and retry. |
| No tunnel URL appears in logs | Check that the Expose tunnel step completed. The URL is extracted from cloudflared output — allow 15 seconds for the tunnel to establish. |
CodeFull.gs returns 502 or timeout |
Verify the tunnel URL is correct and the workflow is still running. Check that TUNNEL_AUTH_KEY matches in both the secret and CodeFull.gs. |