Cloudflare R2 (Object Storage)¶
Purpose: Unstructured file storage for archives, exports, backups, and media assets — S3-compatible object storage without egress fees.
URL/Endpoint: https://r2.cloudflarestorage.com (S3-compatible API)
Auth: R2 API keys in Infisical. Use rclone for all transfers — boto3 keys may be stale and return errors. The rclone remote is pre-configured on the host machine.
Key Operations¶
- List bucket contents:
rclone ls r2:bucket-name - Upload files:
rclone copy /local/path r2:bucket-name/dest/ - Download files:
rclone copy r2:bucket-name/path /local/dest/ - Sync a directory:
rclone sync /local/dir r2:bucket-name/dir/
Buckets¶
| Bucket | Purpose |
|---|---|
liflode-archives |
Long-term backups — Docker volumes, Postgres dumps |
liflode-media |
Brand and content media assets |
liflode-exports |
Data exports and pipeline outputs |
Dependencies¶
- Infisical (R2 API keys)
rcloneinstalled on host (configured with R2 remote)
Related ADRs¶
None specific.
Runbook¶
Use rclone, not boto3. Uploads are auto-approved; deletions always require Rachel's explicit approval. The DockerVolumeBackup Task Scheduler job runs daily at 1am AEST and syncs Docker volumes and Postgres dumps to liflode-archives.