Skip to content
c17 .ioJoin list

Stacks / Backend

Easy

frp / rathole

Tunnels you host. frp and rathole are Apache-2.0 — ngrok without the tunnel meter.

The problem

ngrok sells a public URL in front of a box you already run. You wanted that URL on a server you control. frp is Apache-2.0 (server + client). rathole is Apache-2.0 if you want a smaller Rust tunnel. Cloudflare Tunnel is not open source — do not call it the OSS path.

Replaces

ngrok

Replace ngrok

Estimated SaaS saved

$1,200

per year, small team, before lock-in

Start on Railway

Headscale if this is a mesh VPN, not a public tunnel

Sponsor this stack Tip jar

Placeholder: frp server (or rathole server) on Railway with a public domain; the client stays on the machine you are exposing. No one-click template in this repo yet — Start on Railway.

The stack

Cost table

You stop payingTypical / yearSelf-host instead
ngrok paid tunnel (small team)$1,200frp or rathole server

Agent setup prompt

Replace ngrok with frp (preferred) or rathole.

- Run the server on a public host. Point a domain at it. Run the client on the machine that used ngrok.
- Confirm one HTTP and one TCP path. Lock tokens. Write AGENT_PROMPT.md.
- Do not install Cloudflare Tunnel and call it open source.

Also as markdown: /stacks/frp-tunnel.md

FAQ

frp or rathole?
frp if you want the common docs. rathole if you want a smaller Rust binary. Pick one.
Is this Tailscale?
No. Tailscale is a mesh VPN — /replace/tailscale. ngrok is a public ingress URL.