A desktop application for managing Cloudflare R2 storage buckets. Built with Tauri, Next.js, and React.
- Multi-Account Support - Manage multiple Cloudflare accounts in one app
- Multiple Tokens per Account - Each account can have multiple API tokens with different bucket access
- Browse and manage files in Cloudflare R2 buckets
- Upload files and folders with resumable multipart uploads
- Preview images and videos directly in the app
- Video thumbnail generation (via ffmpeg)
- Copy signed or public URLs to clipboard
- Dark mode support
- Auto-updates
- ffmpeg - Required for video thumbnail generation
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
# Windows (via Chocolatey)
choco install ffmpegOn macOS, you need to manually allow the app to run:
- Open System Preferences → Privacy & Security
- Click "Open Anyway" next to the blocked app message
If the app doesn't appear in Privacy & Security settings, run:
sudo xattr -d com.apple.quarantine /Applications/r2.app/# Install dependencies
bun install
# Run development server
bun run tauri dev# Build for production
bun run tauri build- On first launch, the "Add Account" dialog will open automatically
- Enter your Cloudflare credentials:
- Account ID - Your Cloudflare account ID (found in dashboard URL)
- Display Name (optional) - Friendly name for the account
- Token Name (optional) - Name to identify this token (e.g., "Production", "Staging")
- API Token - Cloudflare API token with R2 read/write permissions
- Access Key ID - S3-compatible Access Key ID
- Secret Access Key - S3-compatible Secret Access Key
- Click "Load" to fetch available buckets, or manually add bucket names
- Configure public domain for each bucket (optional)
- Sidebar - Shows all configured accounts with token/bucket counts
- Click account - Opens drawer with all tokens and buckets for that account
- Click bucket - Switches to that bucket
- Context menu - Edit or delete accounts/tokens
- Collapse sidebar - Click the collapse icon to minimize to icon-only view
- Go to Cloudflare Dashboard
- Navigate to R2 → Overview → Manage R2 API Tokens
- Create a token with appropriate permissions
- Note the Access Key ID and Secret Access Key (shown only once)
Account configurations are stored locally in a SQLite database:
- macOS:
~/Library/Application Support/r2/uploads-turso.db - Windows:
%APPDATA%\r2\uploads-turso.db - Linux:
~/.local/share/r2/uploads-turso.db
The app automatically migrates from the old uploads.db (rusqlite) format on first launch.
- Frontend: Next.js, React, Ant Design, Zustand
- Backend: Tauri (Rust)
- Storage: Cloudflare R2 (S3-compatible)
- Database: SQLite (via Turso - Rust-based SQLite-compatible database)
- State: TanStack Query, Zustand
