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.