Object storage is Bookhoarder’s only persistence layer — books, covers, and
profile data all live there, with no separate database. One environment
variable, STORAGE_DRIVER, picks the backend; everything else runs through
the same container image or Worker.
Local disk
Write straight to a mounted directory. Simplest option, single instance only. See Local disk.
S3
AWS S3, or any S3-compatible store — MinIO, Backblaze B2, R2. See S3.
Cloudflare R2
Runs through the S3 driver everywhere except Cloudflare Workers, which get a native binding instead. See Cloudflare R2.
Choosing a backend
| Backend | STORAGE_DRIVER |
Multi-instance safe | Needs a bucket |
|---|---|---|---|
| Local disk | local |
No — one pod/container only | No |
| S3 | s3 |
Yes | Yes |
| Cloudflare R2 | s3 (Docker/Kubernetes) or r2 (Workers) |
Yes | Yes |
This is a deployment-independent choice — see Deployment for how each platform runs the container itself.