129 lines
4.2 KiB
Markdown
129 lines
4.2 KiB
Markdown
# 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:
|
||
|
|
|
||
|
|
1. Go to your repository on GitHub
|
||
|
|
2. Navigate to **Settings** → **Secrets and variables** → **Actions**
|
||
|
|
3. Click **New repository secret**
|
||
|
|
4. 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:
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
# 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:
|
||
|
|
|
||
|
|
1. Go to **Actions** tab in your repository
|
||
|
|
2. Select **Build disk images** workflow
|
||
|
|
3. Click **Run workflow**
|
||
|
|
4. Select the platform (amd64 or arm64)
|
||
|
|
5. 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:
|
||
|
|
|
||
|
|
```ini
|
||
|
|
[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:
|
||
|
|
|
||
|
|
1. Edit the configuration file for your provider
|
||
|
|
2. Update the secret names in `${...}` placeholders
|
||
|
|
3. Add the corresponding secrets to your GitHub repository
|
||
|
|
4. 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](https://rclone.org/docs/)
|
||
|
|
- [GitHub Actions Secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets)
|
||
|
|
- [Cloudflare R2 Documentation](https://developers.cloudflare.com/r2/)
|
||
|
|
- [AWS S3 Documentation](https://docs.aws.amazon.com/s3/)
|
||
|
|
- [Backblaze B2 Documentation](https://www.backblaze.com/b2/docs/)
|
||
|
|
|
||
|
|
## Need Help?
|
||
|
|
|
||
|
|
If you encounter issues:
|
||
|
|
1. Check the workflow logs in the Actions tab
|
||
|
|
2. Review the rclone documentation for your provider
|
||
|
|
3. Ask in the [Universal Blue Discord](https://discord.gg/WEu6BdFEtp)
|
||
|
|
4. Post in the [Universal Blue Forums](https://universal-blue.discourse.group/)
|