Documentation

TunnelTug exposes local HTTP services to the internet through QUIC tunnels.

Ports

PortProtocolPurpose
443TCP HTTPS, UDP HTTP/3Public ingress
9000UDP QUICTunnel control channel
80TCPACME HTTP-01 (-prod only)

Server (production)

tunneltug -mode server -prod \\
  -domain tunneltug.com \\
  -email ssl@tunneltug.com \\
  -token \"$(openssl rand -hex 32)\"

Requires DNS A/AAAA records and open ports 80, 443/tcp, 443/udp, and control/udp.

Client

tunneltug -mode client \\
  -server tunnel.tunneltug.com \\
  -domain tunneltug.com \\
  -subdomain myapp \\
  -local 3000 \\
  -token \"\"

Flags

FlagDefaultDescription
-modeclientserver or client
-routingsubdomainsubdomain or direct
-control9000QUIC control port (UDP)
-public8080Public HTTP(S) port
-local3000Local app port (client)
-http3trueHTTP/3 on public ingress when TLS enabled
-prodfalseACME TLS + production defaults

Environment variables

TUNNELTUG_TOKEN      → -token
TUNNELTUG_DOMAIN     → -domain
TUNNELTUG_SERVER     → -server
TUNNELTUG_SUBDOMAIN  → -subdomain

Health check

GET /_tunneltug/health

Returns JSON status, routing mode, and active tunnel count.

Security