Getting started
How to set up burrow with Cloudflare for persistent named tunnel URLs.
What you need
burrow share 3000. It works immediately with no setup.
If you already have a domain, you only need to point its nameservers to Cloudflare. Cloudflare's DNS is free and you keep your existing registrar.
Go to dash.cloudflare.com, click Add a site, enter your domain, and choose the free plan. Cloudflare will scan your existing DNS records and give you two nameservers to set at your registrar. DNS propagation takes up to 24 hours.
If you don't have a domain yet, register one anywhere (Cloudflare Registrar, Namecheap, etc.) and then follow the steps above.
Go to dash.cloudflare.com. At the top right of the dashboard, click the ⋮ icon next to the + Add button and select Copy account ID. You'll enter this when running burrow init.
Go to dash.cloudflare.com/profile/api-tokens and click Create Token, then Create Custom Token. Do not use a template - burrow needs permissions that no template covers.
| Resource type | Resource | Permission | Why |
|---|---|---|---|
| Account | Cloudflare Tunnel | Edit | Creates and manages the tunnel object |
| Zone | DNS | Edit | Creates CNAME records pointing your domain to the tunnel |
| Zone | Zone | Read | Looks up your zone ID from the domain name |
Under Zone Resources, set Include - Specific zone and select your domain. Under Account Resources, select your account. Click through to create the token and copy it - you can only see it once.
Run burrow init and enter the API token and Account ID from the previous steps. burrow will validate your credentials and install cloudflared automatically.
~/.burrow/auth.json and never go in the repo. The .burrow.yaml config file you create next is what gets committed.
Create a .burrow.yaml file at the root of your project. Define each service you want to expose with a name, local port, and domain.
Commit this file to your repo. Teammates who have run burrow init can immediately run burrow up with no additional setup.
domain field use trycloudflare.com and don't require a Cloudflare account. You can mix both in the same file.
Make sure your local services are running on the ports defined in .burrow.yaml, then run:
DNS records are created automatically on first run. The same URLs will work every time you restart, for every teammate.
Need help? Open an issue on GitHub. For managing tunnels once they're running, see the commands reference.