Skip to content

Storage

Storage policy is stored in the Options table under the storage_* prefix.

Limits

KeyDefaultRangePurpose
storage_max-image-mb501–500Per-image hard cap.
storage_max-video-mb101–500Per-video hard cap.

Limits are enforced server-side at upload time; a request exceeding the cap returns 413 Payload Too Large. Adjusting the cap does not migrate existing assets.

Backend storage

The actual file backend (local disk vs. S3 / R2 / B2) is selected by deployment configuration in backend/src/services/files.* — there isn't a runtime toggle in the admin panel today. To switch:

  1. Stop the API (./service.sh stop).
  2. Update the file-storage configuration in .env (e.g. set the S3 bucket / region / credentials).
  3. Migrate existing files (backend/dist/uploads/ → bucket) if needed.
  4. Start (./service.sh start).

For self-hosted deployments at any scale, point storage at S3-compatible object storage with versioning enabled. Local-disk storage is fine for development and small single-tenant deployments where backups cover the uploads directory.