Skip to content

Local disk

Store books on a mounted directory — no bucket, no credentials.

Updated View as Markdown

The default driver, and the simplest option for a single-machine setup. Bookhoarder writes directly to a directory, so mount a volume (or a PersistentVolumeClaim on Kubernetes) to persist it across restarts.

Leave STORAGE_DRIVER unset, or set it to local

It’s the default.

Mount a volume at /app/.data

Or set LOCAL_STORAGE_PATH to mount somewhere else.

Start the container

Books persist across restarts as long as the volume does.

Configuration

Variable Required Notes
STORAGE_DRIVER Yes local — also the default if unset
LOCAL_STORAGE_PATH No Defaults to ./.data, resolved against /app — leave it as-is and mount /app/.data

Docker

docker run -d \
  --name bookhoard \
  -p 3000:3000 \
  -v bookhoard_data:/app/.data \
  -e STORAGE_DRIVER=local \
  ghcr.io/bookhoard/bookhoarder:latest

When not to use it

The local driver ties book data to one container’s (or pod’s) filesystem — there’s no way for a second instance to see the same files. That rules it out for:

  • Cloudflare Workers, which have no writable filesystem at all — use Cloudflare R2 instead
  • Any deployment you want to scale past one replica — use S3 or R2, which every instance can read and write concurrently

See Deploy with Docker for how this fits into a full container setup, or Deploy on Kubernetes for the PersistentVolumeClaim version.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close