Appearance
Storage
Storage policy is stored in the Options table under the storage_* prefix.
Limits
| Key | Default | Range | Purpose |
|---|---|---|---|
storage_max-image-mb | 50 | 1–500 | Per-image hard cap. |
storage_max-video-mb | 10 | 1–500 | Per-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:
- Stop the API (
./service.sh stop). - Update the file-storage configuration in
.env(e.g. set the S3 bucket / region / credentials). - Migrate existing files (
backend/dist/uploads/→ bucket) if needed. - Start (
./service.sh start).
Recommended setup
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.