soundwave/DEPLOYMENT.md

189 lines
3.3 KiB
Markdown
Raw Permalink Normal View History

# 🚀 SoundWave - Easy Deployment Guide
## For End Users (No Build Required)
### Quick Start (3 Steps)
**1. Download docker-compose.yml**
```bash
wget https://raw.githubusercontent.com/aiulian25/soundwave/main/docker-compose.yml
```
**2. Create .env file**
```bash
cat > .env << EOF
SW_HOST=http://localhost:8889
SW_USERNAME=admin
SW_PASSWORD=soundwave
ELASTIC_PASSWORD=soundwave
REDIS_HOST=soundwave-redis
TZ=UTC
EOF
```
**3. Start SoundWave**
```bash
docker compose up -d
```
That's it! 🎉
**Access:** http://localhost:8889
**Login:** admin / soundwave
---
## What This Does
The Docker Compose file:
2025-12-23 23:46:11 +00:00
- ✅ Pulls pre-built image from GitHub Container Registry (`ghcr.io/aiulian25/soundwave:latest`)
- ✅ Starts ElasticSearch for search functionality
- ✅ Starts Redis for task queue
- ✅ Automatically runs migrations
- ✅ Creates admin user
**No npm, no build, no compilation needed!**
2025-12-23 23:46:11 +00:00
> **Note**: If the image pull fails (image not published yet), see the "Building Locally" section below.
---
## Directory Structure
After running, you'll have:
```
your-folder/
├── docker-compose.yml (downloaded)
├── .env (created)
├── audio/ (created automatically)
├── cache/ (created automatically)
├── data/ (created automatically)
├── es/ (created automatically)
└── redis/ (created automatically)
```
---
## Customization
Edit `.env` before starting to customize:
- Change port from 8889 to something else
- Change admin username/password
- Adjust timezone
Example custom .env:
```bash
SW_HOST=http://localhost:3000
SW_USERNAME=myadmin
SW_PASSWORD=mysecretpassword
ELASTIC_PASSWORD=elasticpass
REDIS_HOST=soundwave-redis
TZ=America/New_York
```
Then update port in docker-compose.yml:
```yaml
ports:
- "3000:8888" # Change 8889 to 3000
```
---
## Stopping/Starting
```bash
# Stop
docker compose down
# Start
docker compose up -d
# View logs
docker compose logs -f soundwave
# Restart
docker compose restart soundwave
```
---
## Updating
```bash
# Pull latest image
docker compose pull
# Restart with new version
docker compose up -d
```
---
2025-12-23 23:46:11 +00:00
## Building Locally
If the pre-built image is not available (not published yet or want latest code):
**Prerequisites**: Node.js 18+ and npm
```bash
2025-12-23 23:46:11 +00:00
# Clone repository
git clone https://github.com/aiulian25/soundwave.git
cd soundwave
2025-12-23 23:46:11 +00:00
# Build frontend
cd frontend
npm install
npm run build
cd ..
# Build Docker image and start
docker compose build
docker compose up -d
```
2025-12-23 23:46:11 +00:00
Alternatively, uncomment the `build:` section in docker-compose.yml and it will build automatically:
```yaml
# In docker-compose.yml, uncomment:
build:
context: .
dockerfile: Dockerfile
```
Then run: `docker compose up -d --build`
---
## System Requirements
- Docker & Docker Compose
- 2-4GB RAM
- Dual-core CPU (quad-core recommended)
- Storage for your audio library
---
## Troubleshooting
**Port already in use?**
```bash
# Change port in .env and docker-compose.yml
ports:
- "9000:8888" # Use port 9000 instead
```
**Can't access after starting?**
```bash
# Wait 30-60 seconds for services to initialize
docker compose logs -f soundwave
```
**Forgot password?**
```bash
# Reset admin password
docker compose exec soundwave python manage.py changepassword admin
```
---
**That's it! Enjoy SoundWave!**