2025-12-16 23:53:42 +00:00
|
|
|
# 🚀 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`)
|
2025-12-16 23:53:42 +00:00
|
|
|
- ✅ 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.
|
|
|
|
|
|
2025-12-16 23:53:42 +00:00
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 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
|
2025-12-16 23:53:42 +00:00
|
|
|
|
|
|
|
|
```bash
|
2025-12-23 23:46:11 +00:00
|
|
|
# Clone repository
|
2025-12-16 23:53:42 +00:00
|
|
|
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
|
2025-12-16 23:53:42 +00:00
|
|
|
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`
|
|
|
|
|
|
2025-12-16 23:53:42 +00:00
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 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!**
|