Skip to content
/ r2 Public

A desktop application for managing Cloudflare R2 storage buckets. Built with Tauri, Next.js, and React. GUI

Notifications You must be signed in to change notification settings

dickwu/r2

Repository files navigation

Cloudflare R2 Client

A desktop application for managing Cloudflare R2 storage buckets. Built with Tauri, Next.js, and React.

Features

  • 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

Screenshots

Prerequisites

Required

Optional (for video thumbnails)

  • ffmpeg - Required for video thumbnail generation
# macOS
brew install ffmpeg

# Ubuntu/Debian
sudo apt install ffmpeg

# Windows (via Chocolatey)
choco install ffmpeg

macOS Installation

On macOS, you need to manually allow the app to run:

  1. Open System PreferencesPrivacy & Security
  2. 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/

Development

# Install dependencies
bun install

# Run development server
bun run tauri dev

Build

# Build for production
bun run tauri build

Configuration

Adding Your First Account

  1. On first launch, the "Add Account" dialog will open automatically
  2. 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
  3. Click "Load" to fetch available buckets, or manually add bucket names
  4. Configure public domain for each bucket (optional)

Managing Multiple Accounts

  • 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

Getting API Credentials

  1. Go to Cloudflare Dashboard
  2. Navigate to R2OverviewManage R2 API Tokens
  3. Create a token with appropriate permissions
  4. Note the Access Key ID and Secret Access Key (shown only once)

Data Storage

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.

Tech Stack

  • 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

IDE Setup

About

A desktop application for managing Cloudflare R2 storage buckets. Built with Tauri, Next.js, and React. GUI

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published