Tunnels

Expose Syntropic137 to the internet for GitHub webhooks and remote access.

By default, Syntropic137 binds to 127.0.0.1:8137, localhost only. A tunnel exposes it to the internet so GitHub can deliver webhooks and you can access the dashboard remotely.

When You Need a Tunnel

Syntropic137's event polling covers most GitHub events without a tunnel: PRs, pushes, issues, self-healing CI, and more work out of the box. Tunnels are only required for two things:

  1. Real-time CI/CD events: workflow_run, check_suite, and other Actions events require webhook delivery. (check_run events are available via Checks API polling for zero-config self-healing.)
  2. Remote access: accessing the dashboard or API from outside your local network.

If you only use push/PR/issue/self-healing triggers and access the dashboard locally, you don't need a tunnel.

Cloudflare Tunnels

Syntropic137 includes Cloudflare Tunnel support in its Docker Compose stack via the tunnel profile.

Setup

  1. Install cloudflared and authenticate:
brew install cloudflare/cloudflare/cloudflared
cloudflared tunnel login
  1. Create a tunnel in the Cloudflare Zero Trust dashboard and copy the tunnel token.

  2. Add three variables to your ~/.syntropic137/.env:

COMPOSE_PROFILES=tunnel
CLOUDFLARE_TUNNEL_TOKEN=your-tunnel-token-here
SYN_PUBLIC_HOSTNAME=syn137.yourdomain.com
  1. Restart the stack:
npx @syntropic137/setup stop
npx @syntropic137/setup start

The cloudflared container starts automatically and routes traffic from your domain to the gateway service. No port forwarding needed.

Updating the GitHub App Webhook URL

After setting up the tunnel, update your GitHub App's webhook URL:

npx @syntropic137/setup github-app

Or manually in GitHub → Settings → Developer Settings → Your App → Webhook URL → set to https://syn137.yourdomain.com/api/v1/webhooks/github.

Other Tunnel Options

While Cloudflare Tunnels are the built-in option, any tunnel that forwards HTTPS traffic to localhost:8137 works:

  • ngrok: ngrok http 8137
  • Tailscale Funnel: tailscale funnel 8137
  • SSH tunnel: ssh -R 80:localhost:8137 your-server

Set SYN_PUBLIC_HOSTNAME in your .env to your tunnel's public URL regardless of which provider you use.

Syntropic137 Docs v0.25.4 · Last updated March 2026

On this page