flypod
Concepts

Ephemerality & TTL

Anonymous deploys expire 14 days after deploy and are swept by a garbage collector; deploying while logged in or claiming a site makes it permanent.

flypod deploys are ephemeral by default. An anonymous deploy gets a 14-day time-to-live and is then deleted. Ownership removes the expiry entirely; an owned site is permanent.

The 14-day TTL

When you deploy without authenticating, flypod sets:

expires_at = now + 14 days

When you deploy with an account session, it sets:

expires_at = null   // permanent

So the TTL is a property of ownership, not of the content. The same files expire if deployed anonymously and live forever if deployed by an account.

The garbage collector

A garbage collector periodically sweeps expired sites, deleting both their files and their metadata. On the hosted Worker it runs about every 5 minutes, so expiry is enforced shortly after expires_at passes, not lazily on next request.

Once a site is expired, requests to it return 410 Gone (see status codes). After GC removes it, the data is gone.

Treat anonymous deploys as disposable. If a URL needs to outlive 14 days, make the site owned before it expires. There is no recovery after GC sweeps it.

How to persist a site

There are two ways to get a permanent (expires_at = null) site:

flypod login    # approve this machine in your browser
flypod ./dist   # owned, expires_at = null

Already deployed anonymously? Just run flypod login. The CLI auto-claims every anonymous site it remembers locally, sending each site's stored manage_token to POST /account/bulk-attach — no copy-paste, no tokens on the terminal. For the dashboard, the equivalent bulk-claim runs on sign-up: every site you deployed from that browser session re-points to your new account in one step. See Tokens & ownership for the details.

On this page