AudioForge / VERIFICATION.md
OnyxlMunkey's picture
c618549
# AudioForge Setup Verification Checklist
Use this checklist to verify your AudioForge installation is correct and ready to run.
## βœ… Pre-Flight Checks
### Backend
- [ ] Python 3.11+ installed (`python --version`)
- [ ] Virtual environment created and activated
- [ ] Dependencies installed (`uv pip install -e ".[dev]"`)
- [ ] `.env` file exists (copied from `.env.example`)
- [ ] Storage directories exist (`storage/audio/{music,vocals,mixed,mastered}`)
- [ ] PostgreSQL running and accessible
- [ ] Redis running (optional but recommended)
- [ ] Database initialized (`python scripts/init_db.py`)
### Frontend
- [ ] Node.js 20+ installed (`node --version`)
- [ ] Dependencies installed (`pnpm install`)
- [ ] `.env.local` exists with `NEXT_PUBLIC_API_URL`
- [ ] No build errors (`pnpm build` succeeds)
## βœ… Runtime Checks
### Backend Health
```bash
# Should return: {"status":"healthy","version":"0.1.0"}
curl http://localhost:8000/health
```
### Backend API Docs
```bash
# Should open Swagger UI
open http://localhost:8000/api/docs
```
### Frontend
```bash
# Should open AudioForge interface
open http://localhost:3000
```
### Database Connection
```bash
# Backend should connect without errors
# Check logs for: "database_initialized_successfully"
```
## βœ… Functional Tests
### Test Generation Flow
1. [ ] Open http://localhost:3000
2. [ ] Enter prompt: "A calm acoustic guitar melody"
3. [ ] Click "Generate Music"
4. [ ] See generation status change: pending β†’ processing β†’ completed
5. [ ] Audio file generated and playable
### Test API Directly
```bash
# Create generation
curl -X POST http://localhost:8000/api/v1/generations \
-H "Content-Type: application/json" \
-d '{"prompt": "Test music generation"}'
# Should return generation ID and status: "pending"
```
## βœ… Code Quality Checks
### Backend
```bash
cd backend
# Type checking
mypy app
# Linting
ruff check app
# Formatting
black --check app
# Tests
pytest tests/ -v
```
### Frontend
```bash
cd frontend
# Type checking
pnpm type-check
# Linting
pnpm lint
# Tests
pnpm test
```
## βœ… Performance Checks
- [ ] Backend starts in < 5 seconds
- [ ] Frontend builds in < 30 seconds
- [ ] API responses < 100ms (excluding generation)
- [ ] No memory leaks (check with `docker stats`)
## βœ… Security Checks
- [ ] `.env` not committed to git
- [ ] `SECRET_KEY` changed from default
- [ ] CORS configured correctly
- [ ] No sensitive data in logs
## βœ… Documentation Checks
- [ ] README.md complete
- [ ] SETUP.md complete
- [ ] ARCHITECTURE.md complete
- [ ] API docs accessible
- [ ] Code comments present
## Common Issues & Solutions
### Issue: Backend won't start
**Check:**
```bash
cd backend
python scripts/verify_setup.py
```
**Common causes:**
- Missing dependencies β†’ `uv pip install -e ".[dev]"`
- Database not running β†’ `docker-compose up -d postgres`
- Port 8000 in use β†’ Change port or stop conflicting service
### Issue: Frontend won't connect to backend
**Check:**
- `.env.local` has correct `NEXT_PUBLIC_API_URL`
- Backend is running on correct port
- CORS allows frontend origin
### Issue: Generation fails
**Check:**
- Models downloading (first time takes time)
- Sufficient disk space (~2GB for models)
- GPU/CUDA if using GPU mode
- Check backend logs for errors
### Issue: Database errors
**Check:**
- PostgreSQL running: `docker-compose ps` or `pg_isready`
- DATABASE_URL correct in `.env`
- Database exists: `createdb audioforge` if needed
- Migrations applied: `alembic upgrade head`
## Verification Script
Run automated verification:
```bash
# Backend
cd backend
python scripts/verify_setup.py
# Should show all βœ… checks
```
## Production Readiness
Before deploying to production:
- [ ] All tests passing
- [ ] Environment variables configured
- [ ] Database migrations applied
- [ ] Storage configured (S3 or persistent volume)
- [ ] Monitoring set up
- [ ] Logging configured
- [ ] Security review completed
- [ ] Performance tested
- [ ] Documentation updated
## Success Criteria
βœ… All checks pass
βœ… Backend responds to health check
βœ… Frontend loads without errors
βœ… Can create a generation
βœ… Generation completes successfully
βœ… Audio file is playable
If all checks pass, you're ready to go! πŸŽ‰