soundwave/docker_assets/run.sh
Iulian 51679d1943 Initial commit - SoundWave v1.0
- Full PWA support with offline capabilities
- Comprehensive search across songs, playlists, and channels
- Offline playlist manager with download tracking
- Pre-built frontend for zero-build deployment
- Docker-based deployment with docker compose
- Material-UI dark theme interface
- YouTube audio download and management
- Multi-user authentication support
2025-12-16 23:43:07 +00:00

51 lines
1.3 KiB
Bash

#!/bin/bash
set -e
echo "Starting SoundWave..."
# Wait for ElasticSearch
echo "Waiting for ElasticSearch..."
until curl -s -u elastic:$ELASTIC_PASSWORD $ES_URL/_cluster/health > /dev/null; do
echo "ElasticSearch is unavailable - sleeping"
sleep 3
done
echo "ElasticSearch is up!"
# Wait for Redis
echo "Waiting for Redis..."
until python -c "import redis; r = redis.Redis(host='${REDIS_HOST}', port=6379); r.ping()" 2>/dev/null; do
echo "Redis is unavailable - sleeping"
sleep 3
done
echo "Redis is up!"
# Create migrations
echo "=== Creating migrations ==="
python manage.py makemigrations
# Run migrations
echo "=== Running migrations ==="
python manage.py migrate
# Create superuser if it doesn't exist
python manage.py shell << END
from user.models import Account
if not Account.objects.filter(username='$SW_USERNAME').exists():
Account.objects.create_superuser('$SW_USERNAME', 'admin@soundwave.local', '$SW_PASSWORD')
print('Superuser created')
else:
print('Superuser already exists')
END
# Collect static files
python manage.py collectstatic --noinput
# Start Celery worker in background
celery -A config worker --loglevel=info &
# Start Celery beat in background
celery -A config beat --loglevel=info &
# Start Django server
python manage.py runserver 0.0.0.0:8888