Files
CloudflareR2-Manager/.env.example
T
Ty Clifford 3518555d1e - Front controller and UI in [public/index.php](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/public/index.php) and [views/dashboard.php](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/views/dashboard.php)
R2 S3 Signature V4 client in 
[src/R2/R2Client.php](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/src/R2/R2Client.php)
SQLite mirror, usage ledger, settings, local tags, permission labels, 
and signed URL history under 
[src/Repository](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/src/Repository)
Simple password auth and CSRF protection
Uploads, folders, sync, copy/move/delete, downloads, presigned URLs, 
CORS JSON management, and usage/billing-style summaries
Setup docs in 
[README.md](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/README.md) 
and config template in 
[.env.example](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/.env.example)
Important R2 caveat: Cloudflare’s current R2 S3 compatibility docs say 
ACLs and object-tagging APIs are not implemented, so the app stores tags 
and permission labels locally in SQLite while keeping file bytes on R2. 
I used Cloudflare’s official docs for S3 compatibility, presigned URLs, 
and CORS.
2026-06-20 13:57:21 -04:00

21 lines
445 B
Bash

APP_NAME="R2 Manager"
APP_PASSWORD="change-me"
# APP_PASSWORD_HASH="$2y$10$replace-with-password-hash"
APP_SESSION_NAME="r2_manager_session"
APP_DEBUG=false
R2_ACCOUNT_ID=""
R2_ACCESS_KEY_ID=""
R2_SECRET_ACCESS_KEY=""
R2_BUCKET=""
R2_REGION="auto"
R2_ENDPOINT=""
R2_PATH_STYLE=true
# Optional public bucket or custom domain URL, for display/copy links only.
R2_PUBLIC_URL=""
DB_PATH="storage/database/r2-manager.sqlite"
SYNC_PAGE_LIMIT=1000