dd1d17c9

By: Michael Lynch <git@mtlynch.io>

Point .env.example's Litestream config at Backblaze B2

.env.example templated LITESTREAM_ENDPOINT, LITESTREAM_ACCESS_KEY_ID, and
LITESTREAM_BUCKET off Bunny's storage-zone naming convention, but
DESIGN.md documents B2 as the actual replica target: Bunny's S3
implementation doesn't support Batch delete or ETag for HeadObject,
both of which Litestream 0.5.x depends on. DESIGN.md was correct; the
example env file was stale.

B2's S3-compatible endpoint is https://s3.<region>.backblazeb2.com, and
its application key ID/secret are opaque values scoped to a bucket
rather than derived from a zone name, so the old
LITESTREAM_STORAGE_ZONE templating (one value reused as both the bucket
name and the access key ID) doesn't carry over. Replaced it with a
region variable for the endpoint and separate placeholders for the key
ID, secret, and bucket.

The media-storage S3_* variables are untouched: DESIGN.md's "Media
storage and serving: Bunny" section documents Bunny as the intended
vendor for media, a separate concern from database replication.

Co-Authored-By: Claude <noreply@anthropic.com>

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 26s 9s 9s 35s 26s
Eval 43s 1m29s 1m29s 2m13s 7s
Build 2m12s 10m14s 4m09s 6m21s 1m14s
Suite 26s 11m53s 5m54s 6m21s 1m48s

Timeline

0s1m1m20s1m40s2m2m20s2m40s3m3m20s3m40s4m5m40s6m6m20s