fargone / docs / cdn

Static file storage

Every member gets a small CDN quota for static files. Upload a file, get a public URL, link it from anywhere — HTML, images, scripts, share links, whatever.

Upload

Settings → CDN → Upload. Files upload in real time and count against your CDN quota (100 MiB by default — request more from Settings → Quota).

Public URL

Each file gets a stable public URL:

https://fargone.sh/api/cdn/<id>

Files are served with a long cache lifetime and can be fetched by anyone with the link — treat them as public content.

Managing files

The CDN tab lists your files (name, size, type, age) with two actions:

  • Copy URL — copies the public link to your clipboard
  • Delete — removes the file and its storage

CDN for deployed apps

Each app also gets its own namespaced CDN, driven by a managed token the platform injects into the app container as environment variables on every deploy:

Variable Example Purpose
FARGONE_CDN_URL https://fargone.sh/api/cdn upload endpoint
FARGONE_CDN_PUBLIC_URL https://fargone.sh/cdn/<app> read endpoint (app namespaced)
FARGONE_CDN_TOKEN fgcdn_… bearer token for uploads
FARGONE_CDN_PREFIX <app slug> the app's namespace

Your app uploads a file to FARGONE_CDN_URL with Authorization: Bearer $FARGONE_CDN_TOKEN and a path=<file-path> form field, then serves it from FARGONE_CDN_PUBLIC_URL/<path>. Files are scoped to the app — apps can never read or overwrite another app's namespace.

Mirror the same variables locally so development matches production:

fargone cdn env <slug>       # print the export block for your local .env
fargone cdn rotate <slug>    # rotate the token (old tokens die immediately)

After rotating, redeploy the app so its container picks up the new token.

API

See the REST API for the CDN endpoints.