Skip to content

S3

Store books in AWS S3 or any S3-compatible bucket — MinIO, Backblaze B2, Cloudflare R2.

Updated View as Markdown

The s3 driver works with real AWS S3 and any S3-compatible store — MinIO, Backblaze B2, and Cloudflare R2 (see that page for R2-specific values). The container itself never needs a volume; state lives entirely in the bucket, so this is the backend to reach for once you’re running more than one instance.

Create a bucket and access keys

On AWS, MinIO, or B2 — whichever S3-compatible store you’re using.

Set STORAGE_DRIVER=s3

Plus S3_BUCKET, S3_ACCESS_KEY, S3_SECRET_KEY, and S3_ENDPOINT for anything other than real AWS.

Start the container

No volume needed — every instance reads and writes the same bucket.

Configuration

Variable Required Notes
STORAGE_DRIVER Yes s3
S3_BUCKET Yes Bucket name
S3_ACCESS_KEY Yes Access key ID
S3_SECRET_KEY Yes Secret access key
S3_ENDPOINT No Required for MinIO/B2/R2; leave unset for real AWS S3
S3_REGION No Must match the bucket’s real region on AWS; leave unset for MinIO/R2 (they use auto)
S3_PREFIX No Scope all of Bookhoarder’s data under a subdirectory, so the bucket can be shared with other apps

Docker

docker run -d \
  --name bookhoard \
  -p 3000:3000 \
  -e STORAGE_DRIVER=s3 \
  -e S3_BUCKET=bookhoard \
  -e S3_ACCESS_KEY=<YOUR_ACCESS_KEY> \
  -e S3_SECRET_KEY=<YOUR_SECRET_KEY> \
  -e S3_REGION=<YOUR_BUCKET_REGION> \
  ghcr.io/bookhoard/bookhoarder:latest

See Deploy with Docker for the full container setup, or Deploy on Kubernetes for a manifest using this driver.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close