# Frequently Asked Questions Common questions about R2-Manager-Worker. ## General Questions ### What is R2-Manager-Worker? R2-Manager-Worker is a web application for managing Cloudflare R2 buckets with enterprise-grade authentication. It provides features that aren't available in the Cloudflare dashboard, like bulk operations, signed URLs for file sharing, and a modern user interface. ### Why should I use this instead of the Cloudflare dashboard? The Cloudflare dashboard has limited R2 management capabilities. R2-Manager-Worker provides: - Bulk bucket deletion with progress tracking (v1.3.0) - Bulk file operations (download multiple files as ZIP) - File move/copy between buckets - Signed URL generation for easy file sharing - Modern, responsive UI - GitHub SSO authentication - Self-hosted control over your data ### Is it free to use? Yes! The application itself is open-source (MIT license). You only pay for Cloudflare services: - R2 storage and operations (free tier available) - Workers execution (generous free tier) See [Cloudflare pricing](https://www.cloudflare.com/plans/) for details. ## Setup & Deployment ### Do I need a domain to use this? No, you can use the free `workers.dev` subdomain provided by Cloudflare. However, a custom domain provides: - Professional appearance - Better control over routing - Custom branding opportunities ### How long does setup take? First-time setup takes approximately 30-45 minutes: - 10 minutes: Clone and install dependencies - 15 minutes: Configure Cloudflare resources - 10 minutes: Set up Cloudflare Access authentication - 5 minutes: Deploy to production Subsequent deployments take < 2 minutes. ### Can I deploy to multiple environments? Yes! You can have separate deployments for: - Development (using `workers.dev`) - Staging (using a staging subdomain) - Production (using your main domain) Each environment needs its own: - Worker deployment - R2 bucket - Cloudflare Access application ### What Cloudflare plan do I need? The **Free plan** works great for most use cases! However, file upload limits vary by plan: - **Free/Pro:** 100MB per file - **Business:** 200MB per file - **Enterprise:** 500MB per file ## Security ### Is my data secure? Yes! Security features include: - **Zero Trust authentication** - All requests authenticated by Cloudflare Access - **HTTPS only** - All traffic encrypted via TLS - **JWT validation** - Tokens verified on every API call - **Upload verification** - MD5 checksum verification ensures data integrity - **Signed URLs** - Download links use HMAC signatures - **No stored credentials** - No passwords stored anywhere ### Who can access my R2 buckets? By default, only users authenticated via your configured identity provider (GitHub) can access the application. You can restrict this further by: - Limiting to specific GitHub organizations - Allowing only specific email addresses - Using group-based policies ### Can I use a different identity provider besides GitHub? Yes! Cloudflare Access supports many identity providers: - GitHub (configured by default) - Google - Azure AD - Okta - OneLogin - Generic SAML - Generic OIDC Update your Cloudflare Access configuration to use a different provider. ### Is authentication required for all endpoints? Most endpoints require authentication. The following are public: - `/site.webmanifest` - PWA manifest - `/favicon.ico` - Favicon - Static assets (with Bypass policy) - Signed file downloads (signature validated) ## Usage ### What file types can I upload? The application supports a wide range of file types commonly used in R2 buckets: - **Documents** (PDF, Word, Excel, PowerPoint, TXT, Markdown, CSV) - **Images** (JPG, PNG, GIF, WebP, AVIF, HEIC, SVG, BMP, PSD) - **Videos** (MP4, MOV, WebM, AVI, MKV, WMV, FLV, MPEG, 3GP, OGG) - **Audio** (MP3, WAV, FLAC, AAC, M4A, OGG, OPUS) - **Archives** (ZIP, RAR, 7Z, TAR, GZ) - **Fonts** (TTF, OTF, WOFF, WOFF2, EOT) - **Code files** (JS, TS, Python, Java, CSS, HTML, JSON, YAML, SQL, etc.) - **Databases** (SQLite, Parquet) - And many more! See [Development Guide - File Type Categories](Development-Guide#file-type-categories) for complete list with size limits. ### What's the maximum file size? The application supports up to 500MB per file, but Cloudflare enforces plan-based limits: - Free/Pro: 100MB maximum - Business: 200MB maximum - Enterprise: 500MB maximum Files are automatically chunked in 10MB pieces for reliability. ### Can I upload folders? Not directly through the UI. However, you can: 1. ZIP the folder locally 2. Upload the ZIP file 3. Extract on your end when needed Or use the Cloudflare API or tools like `rclone` for folder uploads. ### How do I share files with others? Use the **Signed URL** feature: 1. Hover over a file (Grid view) or click the link icon 2. Or click "Copy Link" button (List view) 3. The signed URL is copied to your clipboard 4. Share the link with anyone who needs access The URL includes a signature that validates the download request without requiring authentication. ### Can I rename files? Yes! File renaming was added in v1.0.2. Right-click on any file and select "Rename" from the context menu. ### Can I delete multiple buckets at once? (v1.3.0+) Yes! Bulk bucket deletion is available: 1. Select buckets by clicking the checkbox in the top-left corner of each bucket card 2. Click "Delete Selected" in the bulk action toolbar 3. Review the confirmation modal showing all buckets and total file counts 4. Confirm deletion and track progress with the progress bar All files within each bucket are automatically deleted (force delete) before the bucket is removed. ### What happens if upload fails? The application includes automatic retry logic: - Failed chunks are retried up to 3 times - If upload fails completely, you can retry manually - Partial uploads are cleaned up automatically ## Performance ### Why is bucket renaming slow? Bucket renaming isn't a native R2 operation. The application: 1. Creates a new bucket 2. Copies all objects to the new bucket 3. Deletes the old bucket For large buckets, this can take several minutes. Rate limiting delays are built-in to avoid API throttling. ### Why is force delete taking so long? Force delete iterates through all objects in the bucket and deletes them individually. For buckets with thousands of objects: - 100 objects ≈ 30 seconds - 1,000 objects ≈ 5 minutes - 10,000 objects ≈ 50 minutes The Worker includes 500ms delays between batches to respect API rate limits. ### How long does bulk bucket deletion take? (v1.3.0+) Bulk deletion processes buckets sequentially (one at a time), not in parallel: - Empty bucket ≈ 5-10 seconds - Bucket with 100 files ≈ 30-60 seconds - Bucket with 1,000 files ≈ 5-8 minutes Progress is displayed in real-time with a progress bar showing "Deleting bucket X of Y". If one bucket fails, the operation continues with the remaining buckets. ### Can I speed up operations? Not significantly - rate limiting is necessary to avoid hitting Cloudflare API limits. For very large buckets, consider: - Using the Cloudflare API directly - Using tools like `rclone` for bulk operations - Breaking operations into smaller batches ## User Interface ### How do I change the theme (light/dark mode)? Click the theme toggle button in the header (next to the Logout button) to cycle through: - **System** - Automatically follows your OS/browser theme preference - **Light** - Force light mode - **Dark** - Force dark mode Your preference is saved and persists across sessions. ### Does the theme change automatically with my system settings? Yes! When in "System" mode (the default), the application automatically detects and follows your operating system's theme preference. If you change your OS theme while the app is open, it updates instantly. ### Can I customize the theme colors? Yes! The theme system uses CSS custom properties (variables) that can be customized: 1. Fork the repository 2. Edit `src/styles/themes.css` 3. Modify color values for light/dark themes 4. Deploy your customized version See the [Development Guide](Development-Guide#theme-system-architecture) for technical details. ## Development ### Can I contribute to the project? Absolutely! Contributions are welcome: 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Open a Pull Request See [Contributing Guidelines](https://github.com/neverinfamous/R2-Manager-Worker/blob/main/CONTRIBUTING.md) for details. ### Can I customize the UI? Yes! The UI is built with vanilla CSS and React. You can: - Edit styles in `src/app.css` - Modify components in `src/` - Add custom branding - Change colors and layout Custom branding via environment variables is on the roadmap. ### Can I add features? Definitely! The codebase is well-structured for extensions: - Add new API endpoints in `worker/index.ts` - Add UI components in `src/` - Extend the API client in `src/services/api.ts` Check the [Development Guide](Development-Guide) for details. ## Troubleshooting ### Why can't I authenticate? Common causes: - `TEAM_DOMAIN` doesn't include `https://` - `POLICY_AUD` doesn't match Application Audience Tag - GitHub account not allowed in Access policy - JWT cookie not being set See [Troubleshooting](Troubleshooting#authentication-issues) for detailed solutions. ### Why can't I see my bucket? Check that: - Bucket name in `wrangler.toml` matches exactly (case-sensitive) - `ACCOUNT_ID` secret is correct - API token has R2 Storage permissions - Bucket actually exists: `npx wrangler r2 bucket list` ### Where can I get help? - **Documentation:** Check the [wiki](Home) - **Issues:** [GitHub Issues](https://github.com/neverinfamous/R2-Manager-Worker/issues) - **Discussions:** [GitHub Discussions](https://github.com/neverinfamous/R2-Manager-Worker/discussions) - **Troubleshooting:** [Troubleshooting Guide](Troubleshooting) ## Billing & Costs ### How much does it cost to run? Costs depend on your usage. Typical costs for small-to-medium usage: **Workers:** - Free tier: 100,000 requests/day - Beyond: $0.50 per million requests **R2 Storage:** - Free tier: 10GB storage - Beyond: $0.015 per GB/month **Example:** - 1,000 daily users - 10GB storage - = Likely **$0/month** on free tier ### Are there any hidden costs? No hidden costs! All pricing is transparent: - Workers and R2 have generous free tiers - No data transfer fees between Cloudflare services - No fees for API requests within Cloudflare network See [Cloudflare pricing](https://www.cloudflare.com/plans/) for details. ## Comparison ### How does this compare to AWS S3 management tools? Similarities: - Bucket and object management - Web-based interface - API integration Differences: - **R2-Manager-Worker:** Self-hosted, edge deployment, Zero Trust auth - **AWS Console:** Hosted by AWS, integrated with AWS ecosystem - **R2 advantages:** No egress fees, global performance, simpler auth ### Can I use this with AWS S3? Not directly. The application is built specifically for Cloudflare R2. However: - R2 is S3-compatible - Could potentially be adapted for S3 - Would require changes to authentication and API calls ## Future Plans ### What features are coming next? See the [Roadmap](Roadmap) for planned features: - Audit logging - Role-based access control - File versioning - Offline upload queue - Custom branding ### Can I request a feature? Yes! Feature requests are welcome: - [Open a discussion](https://github.com/neverinfamous/R2-Manager-Worker/discussions) - [Submit an issue](https://github.com/neverinfamous/R2-Manager-Worker/issues) - Describe your use case and requirements --- **Have a question not answered here?** [Ask in Discussions](https://github.com/neverinfamous/R2-Manager-Worker/discussions) or [open an issue](https://github.com/neverinfamous/R2-Manager-Worker/issues).