rebrand: rename VoiceBox to TalkBox throughout codebase
CI / frontend-quality (push) Canceled after 0s

- All 'voicebox'/'Voicebox'/'VOICEBOX' strings replaced with 'talkbox'/'TalkBox'/'TALKBOX'
- Port changed from 17493 to 17494 (avoids conflict with upstream VoiceBox)
- MCP tool namespace: voicebox.* -> talkbox.*
- App bundle ID: sh.voicebox.app -> com.talkbox.app
- Binary names: voicebox-server -> talkbox-server, voicebox-mcp -> talkbox-mcp
- Docker user/group: voicebox -> talkbox
- Database: voicebox.db -> talkbox.db
- Env vars: VOICEBOX_* -> TALKBOX_*
- Asset files renamed: voicebox-logo.* -> talkbox-logo.*, etc.
- External binaries in tauri.conf.json updated to talkbox-server/talkbox-mcp
This commit is contained in:
2026-08-24 19:45:56 -07:00
parent eaef8dd838
commit b8815e94ea
205 changed files with 1593 additions and 1593 deletions
+71 -71
View File
@@ -5,7 +5,7 @@
## Overview
Docker support makes Voicebox easier to deploy, especially for:
Docker support makes TalkBox easier to deploy, especially for:
- **Consistent Environments**: Same setup across dev/staging/prod
- **GPU Passthrough**: Easy NVIDIA/AMD GPU access
@@ -19,17 +19,17 @@ Docker support makes Voicebox easier to deploy, especially for:
```bash
# CPU-only version
docker run -p 8000:8000 -v voicebox-data:/app/data \
ghcr.io/jamiepine/voicebox:latest
docker run -p 8000:8000 -v talkbox-data:/app/data \
ghcr.io/jamiepine/talkbox:latest
# NVIDIA GPU version
docker run --gpus all -p 8000:8000 -v voicebox-data:/app/data \
ghcr.io/jamiepine/voicebox:latest-cuda
docker run --gpus all -p 8000:8000 -v talkbox-data:/app/data \
ghcr.io/jamiepine/talkbox:latest-cuda
# AMD GPU version (experimental)
docker run --device=/dev/kfd --device=/dev/dri -p 8000:8000 \
-v voicebox-data:/app/data \
ghcr.io/jamiepine/voicebox:latest-rocm
-v talkbox-data:/app/data \
ghcr.io/jamiepine/talkbox:latest-rocm
```
Then open: `http://localhost:8000`
@@ -42,12 +42,12 @@ Create `docker-compose.yml`:
version: '3.8'
services:
voicebox:
image: ghcr.io/jamiepine/voicebox:latest-cuda
talkbox:
image: ghcr.io/jamiepine/talkbox:latest-cuda
ports:
- "8000:8000"
volumes:
- voicebox-data:/app/data
- talkbox-data:/app/data
- huggingface-cache:/root/.cache/huggingface
environment:
- GPU_MEMORY_FRACTION=0.8 # Use 80% of GPU memory
@@ -62,7 +62,7 @@ services:
capabilities: [gpu]
volumes:
voicebox-data:
talkbox-data:
huggingface-cache:
```
@@ -108,8 +108,8 @@ CMD ["uvicorn", "backend.main:app", "--host", "0.0.0.0", "--port", "8000"]
Build and run:
```bash
docker build -t voicebox .
docker run -p 8000:8000 -v $(pwd)/data:/app/data voicebox
docker build -t talkbox .
docker run -p 8000:8000 -v $(pwd)/data:/app/data talkbox
```
### Multi-Stage Build (Optimized)
@@ -160,7 +160,7 @@ CMD ["uvicorn", "backend.main:app", "--host", "0.0.0.0", "--port", "8000"]
Build:
```bash
docker build -f Dockerfile.optimized -t voicebox:slim .
docker build -f Dockerfile.optimized -t talkbox:slim .
```
## GPU Support
@@ -195,15 +195,15 @@ CMD ["uvicorn", "backend.main:app", "--host", "0.0.0.0", "--port", "8000"]
**Run with GPU:**
```bash
docker run --gpus all -p 8000:8000 \
-v voicebox-data:/app/data \
voicebox:cuda
-v talkbox-data:/app/data \
talkbox:cuda
```
**Docker Compose with GPU:**
```yaml
services:
voicebox:
image: voicebox:cuda
talkbox:
image: talkbox:cuda
deploy:
resources:
reservations:
@@ -249,8 +249,8 @@ CMD ["uvicorn", "backend.main:app", "--host", "0.0.0.0", "--port", "8000"]
docker run --device=/dev/kfd --device=/dev/dri \
--group-add video --ipc=host --cap-add=SYS_PTRACE \
--security-opt seccomp=unconfined \
-p 8000:8000 -v voicebox-data:/app/data \
voicebox:rocm
-p 8000:8000 -v talkbox-data:/app/data \
talkbox:rocm
```
**Note:** ROCm support varies by GPU model. Works best on Linux. See [AMD ROCm docs](https://rocm.docs.amd.com) for compatibility.
@@ -260,9 +260,9 @@ docker run --device=/dev/kfd --device=/dev/dri \
### Essential Volumes
```bash
docker run -v voicebox-data:/app/data \ # Profiles, generations, history
docker run -v talkbox-data:/app/data \ # Profiles, generations, history
-v huggingface-cache:/root/.cache/huggingface \ # Downloaded models
-p 8000:8000 voicebox
-p 8000:8000 talkbox
```
### Development Volume Mounts
@@ -271,9 +271,9 @@ For development with hot-reload:
```bash
docker run -v $(pwd)/backend:/app/backend \ # Live code changes
-v voicebox-data:/app/data \
-v talkbox-data:/app/data \
-e RELOAD=true \
-p 8000:8000 voicebox
-p 8000:8000 talkbox
```
### Custom Model Storage
@@ -283,13 +283,13 @@ Use external model directory:
```bash
docker run -v /path/to/models:/models \
-e MODELS_DIR=/models \
-v voicebox-data:/app/data \
-p 8000:8000 voicebox
-v talkbox-data:/app/data \
-p 8000:8000 talkbox
```
## Environment Variables
Configure Voicebox via environment variables:
Configure TalkBox via environment variables:
```bash
docker run -e TTS_MODE=local \
@@ -297,7 +297,7 @@ docker run -e TTS_MODE=local \
-e OPENAI_API_KEY=sk-... \
-e GPU_MEMORY_FRACTION=0.8 \
-e LOG_LEVEL=info \
-p 8000:8000 voicebox
-p 8000:8000 talkbox
```
### Available Variables
@@ -324,14 +324,14 @@ docker run -e TTS_MODE=local \
version: '3.8'
services:
voicebox:
image: ghcr.io/jamiepine/voicebox:latest-cuda
container_name: voicebox
talkbox:
image: ghcr.io/jamiepine/talkbox:latest-cuda
container_name: talkbox
restart: unless-stopped
ports:
- "8000:8000"
volumes:
- voicebox-data:/app/data
- talkbox-data:/app/data
- huggingface-cache:/root/.cache/huggingface
environment:
- TTS_MODE=local
@@ -353,7 +353,7 @@ services:
start_period: 40s
volumes:
voicebox-data:
talkbox-data:
driver: local
huggingface-cache:
driver: local
@@ -371,7 +371,7 @@ docker compose -f docker-compose.prod.yml up -d
version: '3.8'
services:
voicebox:
talkbox:
build:
context: .
dockerfile: Dockerfile
@@ -379,7 +379,7 @@ services:
- "8000:8000"
volumes:
- ./backend:/app/backend:ro
- voicebox-data:/app/data
- talkbox-data:/app/data
- huggingface-cache:/root/.cache/huggingface
environment:
- RELOAD=true
@@ -388,7 +388,7 @@ services:
command: uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reload
volumes:
voicebox-data:
talkbox-data:
huggingface-cache:
```
@@ -401,12 +401,12 @@ Full stack with reverse proxy and monitoring:
version: '3.8'
services:
# Main Voicebox app
voicebox:
image: ghcr.io/jamiepine/voicebox:latest-cuda
# Main TalkBox app
talkbox:
image: ghcr.io/jamiepine/talkbox:latest-cuda
restart: unless-stopped
volumes:
- voicebox-data:/app/data
- talkbox-data:/app/data
- huggingface-cache:/root/.cache/huggingface
environment:
- TTS_MODE=local
@@ -429,7 +429,7 @@ services:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./ssl:/etc/nginx/ssl:ro
depends_on:
- voicebox
- talkbox
# Prometheus monitoring (optional)
prometheus:
@@ -441,7 +441,7 @@ services:
- prometheus-data:/prometheus
volumes:
voicebox-data:
talkbox-data:
huggingface-cache:
prometheus-data:
```
@@ -466,9 +466,9 @@ volumes:
3. **Deploy:**
```bash
docker run --gpus all -d -p 80:8000 \
-v voicebox-data:/app/data \
-v talkbox-data:/app/data \
--restart unless-stopped \
ghcr.io/jamiepine/voicebox:latest-cuda
ghcr.io/jamiepine/talkbox:latest-cuda
```
### DigitalOcean
@@ -477,7 +477,7 @@ Use GPU Droplet + Docker:
```bash
# Create droplet via CLI
doctl compute droplet create voicebox \
doctl compute droplet create talkbox \
--size gpu-h100x1-80gb \
--image ubuntu-22-04-x64 \
--region nyc3
@@ -486,19 +486,19 @@ doctl compute droplet create voicebox \
ssh root@<droplet-ip>
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
docker run --gpus all -d -p 80:8000 voicebox:cuda
docker run --gpus all -d -p 80:8000 talkbox:cuda
```
### Google Cloud Run (CPU-only)
```bash
# Build and push
docker build -t gcr.io/your-project/voicebox .
docker push gcr.io/your-project/voicebox
docker build -t gcr.io/your-project/talkbox .
docker push gcr.io/your-project/talkbox
# Deploy to Cloud Run
gcloud run deploy voicebox \
--image gcr.io/your-project/voicebox \
gcloud run deploy talkbox \
--image gcr.io/your-project/talkbox \
--platform managed \
--region us-central1 \
--memory 4Gi \
@@ -510,10 +510,10 @@ gcloud run deploy voicebox \
Create `fly.toml`:
```toml
app = "voicebox"
app = "talkbox"
[build]
image = "ghcr.io/jamiepine/voicebox:latest"
image = "ghcr.io/jamiepine/talkbox:latest"
[[services]]
http_checks = []
@@ -529,7 +529,7 @@ app = "voicebox"
handlers = ["tls", "http"]
[mounts]
source = "voicebox_data"
source = "talkbox_data"
destination = "/app/data"
```
@@ -560,38 +560,38 @@ docker run --rm --device=/dev/kfd --device=/dev/dri rocm/dev-ubuntu-22.04:6.0 ro
Container can't write to volumes:
```bash
# Fix permissions
docker run --user $(id -u):$(id -g) -v $(pwd)/data:/app/data voicebox
docker run --user $(id -u):$(id -g) -v $(pwd)/data:/app/data talkbox
```
### Out of Memory
Reduce GPU memory usage:
```bash
docker run -e GPU_MEMORY_FRACTION=0.5 voicebox
docker run -e GPU_MEMORY_FRACTION=0.5 talkbox
```
Or use CPU-only:
```bash
docker run -e DEVICE=cpu voicebox
docker run -e DEVICE=cpu talkbox
```
### Model Download Fails
Ensure HuggingFace cache is writable:
```bash
docker run -v huggingface-cache:/root/.cache/huggingface voicebox
docker run -v huggingface-cache:/root/.cache/huggingface talkbox
```
Or use host cache:
```bash
docker run -v ~/.cache/huggingface:/root/.cache/huggingface voicebox
docker run -v ~/.cache/huggingface:/root/.cache/huggingface talkbox
```
### Port Already in Use
Change host port:
```bash
docker run -p 8080:8000 voicebox # Use port 8080 instead
docker run -p 8080:8000 talkbox # Use port 8080 instead
```
## Security Best Practices
@@ -600,8 +600,8 @@ docker run -p 8080:8000 voicebox # Use port 8080 instead
Create non-root user in Dockerfile:
```dockerfile
RUN useradd -m -u 1000 voicebox
USER voicebox
RUN useradd -m -u 1000 talkbox
USER talkbox
```
### 2. Use Secrets for API Keys
@@ -615,7 +615,7 @@ echo "sk-your-key" | docker secret create openai_key -
docker service create \
--secret openai_key \
-e OPENAI_API_KEY_FILE=/run/secrets/openai_key \
voicebox
talkbox
```
### 3. Network Isolation
@@ -624,7 +624,7 @@ Use internal networks for multi-container setups:
```yaml
services:
voicebox:
talkbox:
networks:
- internal
nginx:
@@ -646,7 +646,7 @@ Prevent resource exhaustion:
```yaml
services:
voicebox:
talkbox:
deploy:
resources:
limits:
@@ -663,10 +663,10 @@ services:
```bash
# Use 80% of GPU (default 90%)
docker run -e GPU_MEMORY_FRACTION=0.8 voicebox
docker run -e GPU_MEMORY_FRACTION=0.8 talkbox
# Allow GPU memory growth (prevents OOM)
docker run -e TF_FORCE_GPU_ALLOW_GROWTH=true voicebox
docker run -e TF_FORCE_GPU_ALLOW_GROWTH=true talkbox
```
### Model Caching
@@ -676,14 +676,14 @@ Pre-download models to volume:
```bash
# Download models first
docker run --rm -v huggingface-cache:/root/.cache/huggingface \
voicebox python -c "
talkbox python -c "
from transformers import WhisperProcessor, WhisperForConditionalGeneration
WhisperProcessor.from_pretrained('openai/whisper-base')
WhisperForConditionalGeneration.from_pretrained('openai/whisper-base')
"
# Then run normally
docker run -v huggingface-cache:/root/.cache/huggingface voicebox
docker run -v huggingface-cache:/root/.cache/huggingface talkbox
```
### Multi-Worker Setup
@@ -728,10 +728,10 @@ Then scrape `/metrics` with Prometheus.
View container logs:
```bash
docker logs -f voicebox
docker logs -f talkbox
# Or with compose
docker compose logs -f voicebox
docker compose logs -f talkbox
```
## Next Steps
@@ -748,7 +748,7 @@ Help improve Docker support:
1. Test on different platforms (AMD GPU, ARM64, etc.)
2. Submit Dockerfile optimizations
3. Share deployment configurations
4. Report issues: [GitHub Issues](https://github.com/jamiepine/voicebox/issues)
4. Report issues: [GitHub Issues](https://github.com/jamiepine/talkbox/issues)
## Resources