Rclone Configuration Directory
This directory contains example rclone configuration files for uploading ISO images to various cloud storage providers.
Available Configurations
- cloudflare-r2.conf - Cloudflare R2 (S3-compatible, zero egress fees)
- aws-s3.conf - Amazon S3 (highly reliable, standard pricing)
- backblaze-b2.conf - Backblaze B2 (affordable, low egress fees)
- sftp.conf - SFTP/SSH upload to any server
- scp.conf - SCP upload to any server
How to Use
1. Choose Your Storage Provider
Select the configuration file that matches your preferred storage provider. Each file contains:
- Setup instructions
- Required GitHub secrets
- Provider-specific configuration options
2. Set Up GitHub Secrets
For the ISO build workflow to upload files, you need to configure GitHub secrets:
- Go to your repository on GitHub
- Navigate to Settings → Secrets and variables → Actions
- Click New repository secret
- Add the secrets required by your chosen provider (listed in the config file)
3. Choose Your Upload Method
The build-disk.yml workflow supports two upload methods:
Method A: Using rclone configs (Recommended)
This method uses the configuration files in this directory:
# In .github/workflows/build-disk.yml, the workflow will:
# 1. Read the config from this directory
# 2. Substitute secrets automatically
# 3. Upload using rclone
To use this method, specify which config to use when triggering the workflow.
Method B: Direct environment variables (Legacy)
The workflow also supports direct environment variable configuration for backward compatibility.
4. Triggering the Workflow
The build-disk.yml workflow is triggered manually:
- Go to Actions tab in your repository
- Select Build disk images workflow
- Click Run workflow
- Select the platform (amd64 or arm64)
- Enable Upload to cloud storage if you want to upload the ISO
Configuration File Format
All configuration files use the rclone INI format with placeholders for secrets:
[remote-name]
type = provider_type
access_key_id = ${SECRET_NAME}
secret_access_key = ${ANOTHER_SECRET}
The workflow automatically replaces ${SECRET_NAME} with the corresponding GitHub secret value.
Customizing Configurations
You can modify these configuration files to suit your needs:
- Edit the configuration file for your provider
- Update the secret names in
${...}placeholders - Add the corresponding secrets to your GitHub repository
- Commit the changes
Important: Never commit actual credentials or secrets to the repository. Always use ${SECRET_NAME} placeholders and GitHub secrets.
Provider Comparison
| Provider | Setup Complexity | Cost | Egress Fees | Notes |
|---|---|---|---|---|
| Cloudflare R2 | Medium | $ | Free | Best for frequent downloads |
| AWS S3 | Medium | $$ | $$ | Most reliable, global reach |
| Backblaze B2 | Easy | $ | $ | Good balance of price/features |
| SFTP/SCP | Medium | Free* | Free | Requires your own server |
*Requires existing server infrastructure
Troubleshooting
"Permission denied" errors
- Check that your access keys are correct
- Verify IAM permissions (for AWS)
- Ensure the bucket exists and is accessible
"Endpoint not found" errors
- Verify the endpoint URL is correct
- Check region settings
- For Cloudflare R2, ensure you're using the correct Account ID
Upload fails silently
- Enable workflow debug logging in GitHub Actions
- Check that secrets are properly set
- Verify the rclone config syntax
Additional Resources
- Rclone Documentation
- GitHub Actions Secrets
- Cloudflare R2 Documentation
- AWS S3 Documentation
- Backblaze B2 Documentation
Need Help?
If you encounter issues:
- Check the workflow logs in the Actions tab
- Review the rclone documentation for your provider
- Ask in the Universal Blue Discord
- Post in the Universal Blue Forums