AudioForge / SETUP.md
OnyxlMunkey's picture
c618549
# AudioForge Setup Guide
Complete setup guide to get AudioForge running locally without errors.
## Prerequisites
- **Python 3.11+** (check with `python --version`)
- **Node.js 20+** (check with `node --version`)
- **PostgreSQL 16+** (or use Docker)
- **Redis 7+** (or use Docker)
- **Docker & Docker Compose** (optional, recommended)
## Quick Start (Docker)
The easiest way to get started:
```bash
# Clone and navigate to project
cd AudioForge
# Start all services
docker-compose up -d
# Backend will be at http://localhost:8000
# Frontend will be at http://localhost:3000
```
## Manual Setup
### Backend Setup
#### Windows (PowerShell)
```powershell
cd backend
.\scripts\setup.ps1
```
#### Linux/macOS
```bash
cd backend
chmod +x scripts/setup.sh
./scripts/setup.sh
```
#### Manual Steps
1. **Create virtual environment:**
```bash
cd backend
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux/macOS
source .venv/bin/activate
```
2. **Install dependencies:**
```bash
# Install uv (modern Python package manager)
pip install uv
# Install project dependencies
uv pip install -e ".[dev]"
```
3. **Configure environment:**
```bash
# Copy example env file
cp .env.example .env
# Edit .env with your settings
# At minimum, set DATABASE_URL and REDIS_URL
```
4. **Start PostgreSQL and Redis:**
**Option A: Docker**
```bash
docker-compose up -d postgres redis
```
**Option B: Local Installation**
- Install PostgreSQL and start service
- Install Redis and start service
- Update `.env` with connection URLs
5. **Run database migrations:**
```bash
alembic upgrade head
```
6. **Start backend server:**
```bash
uvicorn app.main:app --reload
```
Backend will be available at http://localhost:8000
API docs at http://localhost:8000/api/docs
### Frontend Setup
1. **Install dependencies:**
```bash
cd frontend
pnpm install
# or: npm install
```
2. **Configure environment:**
```bash
# Create .env.local
echo "NEXT_PUBLIC_API_URL=http://localhost:8000" > .env.local
```
3. **Start development server:**
```bash
pnpm dev
# or: npm run dev
```
Frontend will be available at http://localhost:3000
## Verification
### Backend Health Check
```bash
curl http://localhost:8000/health
# Should return: {"status":"healthy","version":"0.1.0"}
```
### Frontend Check
Open http://localhost:3000 in your browser. You should see the AudioForge interface.
## Common Issues & Solutions
### Issue: Database Connection Error
**Solution:**
- Ensure PostgreSQL is running: `docker-compose ps` or `pg_isready`
- Check DATABASE_URL in `.env` matches your PostgreSQL setup
- Verify database exists: `createdb audioforge` (if needed)
### Issue: Redis Connection Error
**Solution:**
- Ensure Redis is running: `docker-compose ps` or `redis-cli ping`
- Check REDIS_URL in `.env`
- Redis is optional for basic functionality
### Issue: Model Loading Errors
**Solution:**
- MusicGen models download automatically on first use (can be slow)
- Ensure sufficient disk space (~2GB for models)
- For CPU-only: Set `MUSICGEN_DEVICE=cpu` in `.env`
- Models load lazily - first generation may take longer
### Issue: Port Already in Use
**Solution:**
- Backend: Change port in `uvicorn` command or `.env`
- Frontend: Change port in `next.config.js` or use `pnpm dev -p 3001`
- Stop conflicting services
### Issue: Import Errors
**Solution:**
- Ensure virtual environment is activated
- Reinstall dependencies: `uv pip install -e ".[dev]"`
- Check Python version: `python --version` (needs 3.11+)
### Issue: Frontend Build Errors
**Solution:**
- Clear cache: `rm -rf .next node_modules`
- Reinstall: `pnpm install`
- Check Node version: `node --version` (needs 20+)
## Development Workflow
1. **Backend changes:** Server auto-reloads with `--reload` flag
2. **Frontend changes:** Next.js hot-reloads automatically
3. **Database changes:** Create migration: `alembic revision --autogenerate -m "description"`
4. **Apply migrations:** `alembic upgrade head`
## Testing
### Backend Tests
```bash
cd backend
pytest tests/ -v
```
### Frontend Tests
```bash
cd frontend
pnpm test
```
## Production Deployment
See `ARCHITECTURE.md` for production deployment considerations.
## Getting Help
- Check logs: Backend logs to console, check for errors
- API docs: http://localhost:8000/api/docs
- Review `ARCHITECTURE.md` for system design
- Check `CONTRIBUTING.md` for development guidelines