Files
you-music/setup.sh
2025-11-03 10:54:29 +11:00

93 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# YouMusic Quick Start Script
set -e
echo "🎵 YouMusic Setup"
echo "================="
# Check if Docker is installed
if command -v docker &> /dev/null; then
echo "✅ Docker found"
echo "🐳 Building Docker image..."
docker-compose build
echo "🚀 Starting YouMusic..."
docker-compose up -d
echo ""
echo "✨ YouMusic is running!"
echo "📱 Frontend: http://localhost:8000"
echo "📚 API Docs: http://localhost:8000/docs"
echo ""
echo "To stop: docker-compose down"
echo "To view logs: docker-compose logs -f"
else
echo "⚠️ Docker not found. Installing manually..."
# Check Python
if ! command -v python3 &> /dev/null; then
echo "❌ Python 3 is required but not installed"
exit 1
fi
# Check Node.js
if ! command -v node &> /dev/null; then
echo "❌ Node.js is required but not installed"
exit 1
fi
# Check FFmpeg
if ! command -v ffmpeg &> /dev/null; then
echo "⚠️ FFmpeg not found. Please install it:"
echo " Ubuntu/Debian: sudo apt-get install ffmpeg"
echo " macOS: brew install ffmpeg"
exit 1
fi
echo "✅ All dependencies found"
# Backend setup
echo "🔧 Setting up backend..."
cd backend
# Check if uv is installed
if ! command -v uv &> /dev/null; then
echo "Installing uv..."
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="$HOME/.cargo/bin:$PATH"
fi
if [ ! -d ".venv" ]; then
uv venv --python 3.13
fi
uv sync
# Create data directories
mkdir -p ../data/music ../data/uploads ../data/temp
# Frontend setup
echo "🎨 Setting up frontend..."
cd ../frontend
npm install
npm run build
# Copy frontend build to backend static
mkdir -p ../backend/static
cp -r dist/* ../backend/static/
echo ""
echo "✨ Setup complete!"
echo ""
echo "To start the backend:"
echo " cd backend"
echo " source venv/bin/activate"
echo " uvicorn main:app --reload"
echo ""
echo "Then visit: http://localhost:8000"
fi