docs(ngrok): correct static-domain URL behavior + Full-mode verify advice (#877)

@Montazeran8 noticed two stale doc claims in the ngrok tunnel guide:

1. ngrok.md Step 8 told users to run `mhrv-rs test` to verify a Full-mode
   tunnel — but `mhrv-rs test` is wired for the apps_script relay path only
   and refuses to run in Full mode. Fixed to direct users to ipleak.net /
   whatismyipaddress.com instead.

2. ngrok.md "Renewing the Tunnel" + "Limitations" sections claimed the
   *.ngrok-free.app URL changes every run. ngrok's free tier now ships with
   a default static domain per account, so the URL stays the same across
   runs once assigned. Updated both sections to distinguish static-domain
   accounts (no CodeFull.gs redeploy needed) from older accounts that opted
   out.

3. README.md "Limitations" + "After Starting the Tunnel" sections updated
   to reflect that only Method 1 (cloudflared Quick) has truly volatile URLs.
   Method 2 (ngrok) keeps the same URL on accounts with a static domain.

No code changes — doc-only.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
therealaleph
2026-05-08 01:35:49 +03:00
parent 834785deb5
commit 624914241a
2 changed files with 26 additions and 11 deletions
+10 -5
View File
@@ -70,16 +70,21 @@ All methods share these requirements:
4. Deploy `CodeFull.gs` (Deploy → New Deployment → Web App) 4. Deploy `CodeFull.gs` (Deploy → New Deployment → Web App)
5. Configure your `mhrv-rs` client to use the new deployment in Full mode 5. Configure your `mhrv-rs` client to use the new deployment in Full mode
For methods where the URL changes each session (1 and 2), steps 24 must be For Method 1 (cloudflared Quick) the URL is fresh every session, so steps 24
repeated each time the workflow runs. Method 3 uses a permanent URL — configure must be repeated each time. For Method 2 (ngrok), free-tier accounts now get a
`CodeFull.gs` once and only re-trigger the workflow when needed. **static domain** by default — once assigned, the URL is the same across runs
and `CodeFull.gs` only needs to be updated once. Method 3 uses a permanent
URL — configure `CodeFull.gs` once and only re-trigger the workflow when
needed.
## Limitations ## Limitations
- **6-hour maximum per session.** GitHub Actions enforces a 360-minute timeout - **6-hour maximum per session.** GitHub Actions enforces a 360-minute timeout
on hosted runners. Re-trigger the workflow for another session. on hosted runners. Re-trigger the workflow for another session.
- **URL changes on restart (Methods 1 & 2).** The tunnel URL is assigned at - **URL changes on restart (Method 1).** cloudflared Quick assigns a fresh
runtime. `CodeFull.gs` must be updated and redeployed each time. `*.trycloudflare.com` URL at runtime. `CodeFull.gs` must be updated and
redeployed each session. Method 2 (ngrok) keeps the same URL across runs
on accounts with a static domain assigned (the free-tier default).
- **Shared IP ranges.** GitHub-hosted runners share IP ranges with other users. - **Shared IP ranges.** GitHub-hosted runners share IP ranges with other users.
Some websites may already have these IPs flagged.(sometimes need re-run) Some websites may already have these IPs flagged.(sometimes need re-run)
- **GitHub Actions terms.** This workflow is intended for occasional personal - **GitHub Actions terms.** This workflow is intended for occasional personal
+16 -6
View File
@@ -78,8 +78,10 @@ Copy the new Deployment ID and update your `mhrv-rs` config.
### Step 8: Verify ### Step 8: Verify
Use `mhrv-rs test` or visit `https://ipleak.net` through your proxy. `mhrv-rs test` is wired only for the apps_script relay path; in Full mode it
You should see a GitHub Actions or ngrok IP address. refuses to run. To verify a Full-mode tunnel, visit `https://ipleak.net` (or
`https://whatismyipaddress.com`) through your proxy — you should see a
GitHub Actions or ngrok IP address.
## How It Works ## How It Works
@@ -98,15 +100,23 @@ The tunnel shuts down after 6 hours. To start a new session:
1. Go to the **Actions** tab 1. Go to the **Actions** tab
2. Select **Full Tunnel (ngrok)** 2. Select **Full Tunnel (ngrok)**
3. Click **Run workflow > Run workflow** 3. Click **Run workflow > Run workflow**
4. Copy the **new** tunnel URL from the logs (it changes each time) 4. Check the tunnel URL in the logs:
5. Update `TUNNEL_SERVER_URL` in `CodeFull.gs` and redeploy - **Free tier with a static domain assigned** (default for new ngrok accounts):
the URL is the same across runs — no `CodeFull.gs` update needed.
- **Free tier without a static domain** (older ngrok accounts, or after
`ngrok config delete-domain`): the URL is a fresh random
`*.ngrok-free.app` each time. Copy it and update `TUNNEL_SERVER_URL`
in `CodeFull.gs`, then redeploy.
## Limitations ## Limitations
- Requires an ngrok account (free tier: 1 online tunnel, limited connections - Requires an ngrok account (free tier: 1 online tunnel, limited connections
per minute) per minute)
- The `*.ngrok-free.app` URL changes every time the workflow runs - ngrok's free tier now includes one **static domain** per account, so the
- `CodeFull.gs` must be updated and redeployed each session `*.ngrok-free.app` URL stays the same across workflow runs once assigned.
Older accounts that opted out, or accounts that explicitly deleted the
domain, get a fresh URL on every run and must redeploy `CodeFull.gs` each
session.
- 6-hour maximum per session (GitHub Actions limit) - 6-hour maximum per session (GitHub Actions limit)
- Slightly higher latency than cloudflared methods (extra hop through ngrok's - Slightly higher latency than cloudflared methods (extra hop through ngrok's
relay servers) relay servers)