Integrate Cloudflare R2 for CUDA binary hosting

- Update CI workflow to upload CUDA binary to R2 instead of GitHub
- Use custom domain: downloads.voicebox.sh
- Update release notes with R2 download link
- Add R2 setup documentation with GitHub secrets instructions
- Add local test script for R2 uploads
- Fixes GitHub 2GB release asset limit issue

Required GitHub secrets:
- R2_ACCESS_KEY_ID
- R2_SECRET_ACCESS_KEY
- R2_ENDPOINT

Cost: ~$0.04/month (free bandwidth with R2)
This commit is contained in:
Jamie Pine
2026-01-31 00:46:50 -08:00
parent c211e52382
commit 65f132e9c2
3 changed files with 384 additions and 9 deletions
+24 -9
View File
@@ -177,9 +177,9 @@ jobs:
### NVIDIA GPU Acceleration (Windows)
Windows users with NVIDIA GPUs can enable CUDA for 4-5x faster inference:
1. Install the app normally (CPU version)
2. The app will detect your GPU and offer to download CUDA support
3. Or manually download `voicebox-server-cuda-*.exe` (~3GB) from the assets below
1. Install the app normally (CPU version included in installer)
2. The app will detect your GPU and offer to download CUDA support automatically
3. Or manually download: [voicebox-server-cuda-x86_64-pc-windows-msvc.exe](https://downloads.voicebox.sh/cuda/__VERSION__/voicebox-server-cuda-x86_64-pc-windows-msvc.exe) (~2.4GB)
The app includes automatic updates - future updates will be installed automatically.
releaseDraft: true
@@ -187,11 +187,26 @@ jobs:
args: ${{ matrix.args }}
includeUpdaterJson: true
- name: Upload CUDA server binary (Windows only)
- name: Upload CUDA server to Cloudflare R2 (Windows only)
if: matrix.platform == 'windows-latest'
uses: softprops/action-gh-release@v1
with:
files: backend/cuda-release/voicebox-server-cuda-*.exe
draft: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
R2_ENDPOINT: ${{ secrets.R2_ENDPOINT }}
run: |
# Install AWS CLI if not available
pip install awscli
# Get version from tag
VERSION=${GITHUB_REF#refs/tags/}
# Get platform tuple
PLATFORM=$(rustc --print host-tuple)
# Upload to R2
aws s3 cp backend/cuda-release/voicebox-server-cuda-${PLATFORM}.exe \
s3://voicebox-releases/cuda/${VERSION}/voicebox-server-cuda-${PLATFORM}.exe \
--endpoint-url $R2_ENDPOINT \
--acl public-read
echo "CUDA binary uploaded to: https://downloads.voicebox.sh/cuda/${VERSION}/voicebox-server-cuda-${PLATFORM}.exe"