UI Guide

Object Stores

S3-compatible storage for backups and deployment data, whether FlatRun runs it or you point it somewhere else.

An object store is a named, S3-compatible endpoint FlatRun knows about. One abstraction covers every store, whoever runs it, so backups, deployments, and the UI treat them all the same.

Two kinds

  • External: a store running somewhere else that FlatRun only connects to. You supply the endpoint, region, bucket, and credentials. AWS S3, Cloudflare R2, Backblaze B2, or a MinIO you already run.
  • Managed: a store FlatRun runs for you, deployed from a template as a container on the host. Because it is an ordinary FlatRun deployment, FlatRun knows its endpoint, issues its credentials, and can start, stop, and back it up like anything else. Its data sits in a flat-file bind mount, not a hidden volume.

Everything downstream is identical across the two: browsing objects, using a store as a backup target, and mounting it into a deployment.

Deploying a managed store

Deploy a local store on the Object Stores page picks an object-store template and deploys it. The template generates a root credential for that deployment, FlatRun registers the store against it, derives the endpoint from the container, and keeps the issued credential. From then on it sits beside your external stores.

Connecting an external store

Connect external takes the endpoint, region, bucket, and an optional key prefix, plus a stored S3 credential. Leave the endpoint empty for AWS's default. Secrets never live on the store record: it references a credential held by the credential manager, written 0600 and masked in API responses.

Browsing

Opening a store lists its buckets, and opening a bucket lists its objects. From there you can create and delete buckets, and upload, download, and delete objects, without leaving the panel or installing a separate S3 client.

Using a store

  • As a backup target: mark a store as a backup target and every new archive is mirrored to it on top of the always-local copy. Listing, downloading, and restoring fall back to the store when the local archive has been pruned, so old backups stay restorable without keeping them on the box.
  • From a deployment: attach a store to a deployment and its endpoint and credentials are injected into that deployment's environment, so the application can use it directly.
  • Replicated: sync one store to another. Managed to external gives you an offsite copy; external to managed gives you a local cache.

Permissions

Reading stores and their contents needs backups:read; creating buckets, uploading, provisioning a managed store, and replicating need backups:write; deleting a bucket needs backups:delete. Attaching a store to a deployment is a change to that deployment, so it needs deployments:write.

Star us on GitHub