Expose a running app
exposePublish a locally or SSH-reachable app to a public trycloudflare.com URL. Proxy HTTP and WebSocket traffic, keep it private by default or opt into a public link.
Instructions
Publish an app that is already listening on a port to a public *.trycloudflare.com URL (tunnel backend). Without ssh, the port is on this machine. With ssh (user@host), the app runs on another machine: cloudfact opens an SSH port-forward to it and publishes through here — nothing to install remotely (key-based SSH access required). HTTP and WebSocket traffic is proxied. Apps are PRIVATE by default (same #key gate as static deploys, with rate limiting and optional expiry); pass public=true to publish without the gate. Idempotent: the same port/host already live returns the existing URL (reused=true).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ssh | No | SSH destination of the machine running the app, e.g. ubuntu@10.0.0.5 or a Host alias from ~/.ssh/config | |
| name | No | Deploy name (slug). Defaults to port-<port> or <host>-<port> | |
| port | Yes | Port the app listens on (locally, or on the SSH host) | |
| public | No | Publish without the key gate (default false: private) | |
| expires | No | Private key lifetime, e.g. "30m", "24h", "7d" (default: never expires) | |
| restart | No | Restart even if already live (yields a new URL) | |
| sshPort | No | SSH port (default 22) | |
| identity | No | Path to the SSH private key (default: ssh agent / ~/.ssh/config) | |
| strictHostKey | No | Require the SSH host key to be in known_hosts already (no first-connection trust) |