Snapshot: full project state
This commit is contained in:
30
tunnel.sh
Normal file
30
tunnel.sh
Normal file
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
# Start a Cloudflare quick tunnel for The Collector, extract the trycloudflare
|
||||
# URL, and self-register it with the app (/api/config). Blocks while the tunnel
|
||||
# runs (intended for a systemd service).
|
||||
LOG=/opt/collector/tunnel.log
|
||||
APP=http://127.0.0.1:8766
|
||||
|
||||
: > "$LOG"
|
||||
/usr/local/bin/cloudflared tunnel --url http://localhost:8766 --no-autoupdate >> "$LOG" 2>&1 &
|
||||
CF_PID=$!
|
||||
|
||||
trap 'kill $CF_PID 2>/dev/null' EXIT
|
||||
|
||||
URL=""
|
||||
for _ in $(seq 1 45); do
|
||||
URL=$(grep -oE 'https://[a-z0-9-]+\.trycloudflare\.com' "$LOG" | head -1)
|
||||
[ -n "$URL" ] && break
|
||||
sleep 2
|
||||
done
|
||||
|
||||
if [ -n "$URL" ]; then
|
||||
echo "TUNNEL_URL=$URL"
|
||||
curl -s -X POST "$APP/api/config" -H 'Content-Type: application/json' \
|
||||
-d "{\"public_base_url\":\"$URL\"}" >/dev/null 2>&1
|
||||
echo "registered with app"
|
||||
else
|
||||
echo "TUNNEL_FAILED"
|
||||
fi
|
||||
|
||||
wait $CF_PID
|
||||
Reference in New Issue
Block a user