Skip to content

Commit 6249142

Browse files
therealalephclaude
andcommitted
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>
1 parent 834785d commit 6249142

2 files changed

Lines changed: 26 additions & 11 deletions

File tree

assets/github-actions-tunnel/README.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,16 +70,21 @@ All methods share these requirements:
7070
4. Deploy `CodeFull.gs` (Deploy → New Deployment → Web App)
7171
5. Configure your `mhrv-rs` client to use the new deployment in Full mode
7272

73-
For methods where the URL changes each session (1 and 2), steps 2–4 must be
74-
repeated each time the workflow runs. Method 3 uses a permanent URL — configure
75-
`CodeFull.gs` once and only re-trigger the workflow when needed.
73+
For Method 1 (cloudflared Quick) the URL is fresh every session, so steps 2–4
74+
must be repeated each time. For Method 2 (ngrok), free-tier accounts now get a
75+
**static domain** by default — once assigned, the URL is the same across runs
76+
and `CodeFull.gs` only needs to be updated once. Method 3 uses a permanent
77+
URL — configure `CodeFull.gs` once and only re-trigger the workflow when
78+
needed.
7679

7780
## Limitations
7881

7982
- **6-hour maximum per session.** GitHub Actions enforces a 360-minute timeout
8083
on hosted runners. Re-trigger the workflow for another session.
81-
- **URL changes on restart (Methods 1 & 2).** The tunnel URL is assigned at
82-
runtime. `CodeFull.gs` must be updated and redeployed each time.
84+
- **URL changes on restart (Method 1).** cloudflared Quick assigns a fresh
85+
`*.trycloudflare.com` URL at runtime. `CodeFull.gs` must be updated and
86+
redeployed each session. Method 2 (ngrok) keeps the same URL across runs
87+
on accounts with a static domain assigned (the free-tier default).
8388
- **Shared IP ranges.** GitHub-hosted runners share IP ranges with other users.
8489
Some websites may already have these IPs flagged.(sometimes need re-run)
8590
- **GitHub Actions terms.** This workflow is intended for occasional personal

assets/github-actions-tunnel/ngrok.md

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,10 @@ Copy the new Deployment ID and update your `mhrv-rs` config.
7878

7979
### Step 8: Verify
8080

81-
Use `mhrv-rs test` or visit `https://ipleak.net` through your proxy.
82-
You should see a GitHub Actions or ngrok IP address.
81+
`mhrv-rs test` is wired only for the apps_script relay path; in Full mode it
82+
refuses to run. To verify a Full-mode tunnel, visit `https://ipleak.net` (or
83+
`https://whatismyipaddress.com`) through your proxy — you should see a
84+
GitHub Actions or ngrok IP address.
8385

8486
## How It Works
8587

@@ -98,15 +100,23 @@ The tunnel shuts down after 6 hours. To start a new session:
98100
1. Go to the **Actions** tab
99101
2. Select **Full Tunnel (ngrok)**
100102
3. Click **Run workflow > Run workflow**
101-
4. Copy the **new** tunnel URL from the logs (it changes each time)
102-
5. Update `TUNNEL_SERVER_URL` in `CodeFull.gs` and redeploy
103+
4. Check the tunnel URL in the logs:
104+
- **Free tier with a static domain assigned** (default for new ngrok accounts):
105+
the URL is the same across runs — no `CodeFull.gs` update needed.
106+
- **Free tier without a static domain** (older ngrok accounts, or after
107+
`ngrok config delete-domain`): the URL is a fresh random
108+
`*.ngrok-free.app` each time. Copy it and update `TUNNEL_SERVER_URL`
109+
in `CodeFull.gs`, then redeploy.
103110

104111
## Limitations
105112

106113
- Requires an ngrok account (free tier: 1 online tunnel, limited connections
107114
per minute)
108-
- The `*.ngrok-free.app` URL changes every time the workflow runs
109-
- `CodeFull.gs` must be updated and redeployed each session
115+
- ngrok's free tier now includes one **static domain** per account, so the
116+
`*.ngrok-free.app` URL stays the same across workflow runs once assigned.
117+
Older accounts that opted out, or accounts that explicitly deleted the
118+
domain, get a fresh URL on every run and must redeploy `CodeFull.gs` each
119+
session.
110120
- 6-hour maximum per session (GitHub Actions limit)
111121
- Slightly higher latency than cloudflared methods (extra hop through ngrok's
112122
relay servers)

0 commit comments

Comments
 (0)