Skip to content

docs: add GitHub Actions Full tunnel documentation and workflows#783

Merged
therealaleph merged 9 commits intotherealaleph:mainfrom
euvel:feat/github-actions-full-tunnel
May 6, 2026
Merged

docs: add GitHub Actions Full tunnel documentation and workflows#783
therealaleph merged 9 commits intotherealaleph:mainfrom
euvel:feat/github-actions-full-tunnel

Conversation

@euvel
Copy link
Copy Markdown
Contributor

@euvel euvel commented May 5, 2026

Summary

Adds documentation and workflow files for running a temporary Full tunnel using GitHub Actions free hosted runners. Three methods are provided, ordered by setup complexity:

  • cloudflared Quick Tunnel — zero accounts beyond GitHub, temporary URL
  • ngrok Tunnel — requires free ngrok account, temporary URL
  • cloudflared Named Tunnel — requires Cloudflare domain, permanent URL

Motivation

Users in networks where purchasing a VPS is not possible had no way to experince Full tunnel mode. GitHub Actions provides free hosted runners with 6-hour timeouts — sufficient for temporary Full tunnel sessions.

The mhrv-tunnel-node Docker container runs on the runner. A tunneling service (cloudflared or ngrok) exposes it to the internet. CodeFull.gs connects to this URL for the duration of the session.

Files Added

File Purpose
assets/github-actions-tunnel/README.md Overview and comparison of all methods
assets/github-actions-tunnel/cloudflared-quick.md Step-by-step guide
assets/github-actions-tunnel/cloudflared-quick.yml Workflow file
assets/github-actions-tunnel/ngrok.md Step-by-step guide
assets/github-actions-tunnel/ngrok.yml Workflow file
assets/github-actions-tunnel/cloudflared-named.md Step-by-step guide
assets/github-actions-tunnel/cloudflared-named.yml Workflow file

How to Test

  1. Choose a method from the README comparison table
  2. Follow the step-by-step guide for that method
  3. Run the workflow from the Actions tab
  4. Copy the tunnel URL from the workflow logs
  5. Configure CodeFull.gs with the URL and deploy
  6. Verify with mhrv-rs test or by visiting https://ipleak.net

Thanks

This approach idea was came from while I was trying to download release files from GitHub during a network blackout — release assets are filtered , but repo ZIP downloads are not. That limitation led to the idea of running the tunnel-node directly on GitHub Actions.

Thank you to @therealaleph . The project is a critical tool for accessing the open internet and I am glad to contribute something back.

Compliance Note

This workflow uses GitHub-hosted runners for development infrastructure. Usage is low-burden (a single Docker container, moderate outbound traffic for one user). The documentation includes a note on GitHub Actions terms and recommends occasional personal use rather than continuous operation.

@github-actions github-actions Bot added the type: docs docs: PR — auto-applied by release-drafter label May 5, 2026
@therealaleph
Copy link
Copy Markdown
Owner

@euvel — useful complement to the existing VPS / Docker paths. The 3-tier ladder (cloudflared Quick → ngrok → cloudflared Named) reads cleanly, and ordering by setup complexity helps users self-serve.

Tradeoffs to be honest about with users:

  • 6-hour cap = repeatable but not persistent
  • A new tunnel URL each session means redeploying CodeFull.gs every 6 hours (anyone using this for serious daily traffic should still go VPS)
  • Free-tier runner CPU isn't great for high-throughput Full mode

For users who can't purchase a VPS at all, the workflow-based path is genuinely the only Full-mode option — worth landing.

Merging.


[reply via Anthropic Claude | reviewed by @therealaleph]

@therealaleph therealaleph merged commit 3e86235 into therealaleph:main May 6, 2026
1 check passed
therealaleph added a commit that referenced this pull request May 6, 2026
…Actions full tunnel docs

Wraps four already-merged PRs into a release:
- PR #799 (@dazzling-no-more): HTTP/2 multiplexing on the relay leg with idempotency-safe h1 fallback. ALPN-negotiates h2; one TCP/TLS connection multiplexes ~100 streams instead of the pool. Slow Apps Script calls no longer head-of-line-block the queue on the same socket. force_http1 kill switch in config. 180→197 tests (+17).
- PR #805 (@yyoyoian-pixel): block_quic default true. QUIC over the TCP-based tunnel was TCP-over-TCP meltdown; browsers fall back to TCP/HTTPS within seconds when UDP/443 is dropped. Adds Android + desktop UI toggles.
- PR #819 (@brightening-eyes): enabled accesskit on eframe so screen readers (NVDA/JAWS/VoiceOver/Orca) can navigate the desktop UI. Closes #750.
- PR #783 (@euvel): GitHub Actions Full tunnel docs + workflow YAML files for users who can't buy a VPS. cloudflared Quick / ngrok / cloudflared Named.

Strategically: h2 multiplexing is the architectural fix for #781 / #773 perceived-slowness regression — it makes the pool tuning machinery much less load-bearing. force_http1 kill switch is there if anything goes sideways in the wild.

Tests: 197 lib + 35 tunnel-node green. UI release-mode build green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@P3D4AM
Copy link
Copy Markdown

P3D4AM commented May 7, 2026

عالی بود.دست مریزاد👏✌

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: docs docs: PR — auto-applied by release-drafter

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants