Files
MasterHttpRelayVPN-RUST/assets/github-actions-tunnel/ngrok.yml
T
Euvel 3e8623571f docs: add GitHub Actions Full tunnel documentation and workflows (#783)
* 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
2026-05-07 00:43:16 +03:00

49 lines
1.5 KiB
YAML

name: Full Tunnel (ngrok)
on:
workflow_dispatch:
permissions:
contents: read
jobs:
tunnel:
runs-on: ubuntu-latest
timeout-minutes: 360
steps:
- name: Start mhrv-tunnel-node
run: |
docker run -d --name mhrv-tunnel \
-p 8080:8080 \
-e TUNNEL_AUTH_KEY="${{ secrets.TUNNEL_AUTH_KEY }}" \
ghcr.io/therealaleph/mhrv-tunnel-node:latest
sleep 5
curl -s http://localhost:8080/health || sleep 5
- name: Install ngrok
run: |
curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc \
| sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \
&& echo "deb https://ngrok-agent.s3.amazonaws.com bookworm main" \
| sudo tee /etc/apt/sources.list.d/ngrok.list \
&& sudo apt update \
&& sudo apt install ngrok
ngrok config add-authtoken ${{ secrets.NGROK_AUTH_TOKEN }}
- name: Expose tunnel
id: expose
run: |
ngrok http 8080 --log=stdout > ngrok.log &
sleep 5
URL=$(curl -s http://localhost:4040/api/tunnels | python3 -c "import sys,json;print(json.load(sys.stdin)['tunnels'][0]['public_url'])")
echo "TUNNEL_URL=$URL" >> $GITHUB_OUTPUT
echo "::notice::Tunnel URL: $URL"
echo "TUNNEL_SERVER_URL = $URL"
sleep 21000
- name: Cleanup
if: always()
run: |
docker stop mhrv-tunnel || true
pkill ngrok || true