| 1 | #!/bin/bash |
| 2 | # Pixelle-Video Docker Quick Start Script |
| 3 | |
| 4 | set -e |
| 5 | |
| 6 | echo "🐳 Pixelle-Video Docker Deployment" |
| 7 | echo "==================================" |
| 8 | echo "" |
| 9 | |
| 10 | # Check if config.yaml exists as a directory (Docker mount issue) |
| 11 | if [ -d config.yaml ]; then |
| 12 | echo "⚠️ config.yaml is a directory (Docker mount issue), removing it..." |
| 13 | rm -rf config.yaml |
| 14 | fi |
| 15 | |
| 16 | # Check if config.yaml exists, if not, create from example |
| 17 | if [ ! -f config.yaml ]; then |
| 18 | echo "⚠️ config.yaml not found, creating from config.example.yaml..." |
| 19 | if [ -f config.example.yaml ]; then |
| 20 | cp config.example.yaml config.yaml |
| 21 | echo "✅ config.yaml created successfully!" |
| 22 | echo "" |
| 23 | echo "⚠️ IMPORTANT: Please edit config.yaml and fill in:" |
| 24 | echo " - LLM API key and settings" |
| 25 | echo " - ComfyUI URL (use host.docker.internal:8188 for local Mac/Windows)" |
| 26 | echo " - RunningHub API key (optional, for cloud workflows)" |
| 27 | echo "" |
| 28 | echo "You can also configure these settings in the Web UI after starting." |
| 29 | echo "" |
| 30 | else |
| 31 | echo "❌ Error: config.example.yaml not found!" |
| 32 | echo "" |
| 33 | exit 1 |
| 34 | fi |
| 35 | fi |
| 36 | |
| 37 | # Check if docker-compose is available |
| 38 | if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then |
| 39 | echo "❌ Error: docker-compose not found!" |
| 40 | echo "" |
| 41 | echo "Please install Docker Compose first:" |
| 42 | echo " https://docs.docker.com/compose/install/" |
| 43 | echo "" |
| 44 | exit 1 |
| 45 | fi |
| 46 | |
| 47 | # Use docker-compose or docker compose based on availability |
| 48 | if command -v docker-compose &> /dev/null; then |
| 49 | DOCKER_COMPOSE="docker-compose" |
| 50 | else |
| 51 | DOCKER_COMPOSE="docker compose" |
| 52 | fi |
| 53 | |
| 54 | echo "📦 Building Docker images..." |
| 55 | $DOCKER_COMPOSE build |
| 56 | |
| 57 | echo "" |
| 58 | echo "🚀 Starting services..." |
| 59 | $DOCKER_COMPOSE up -d |
| 60 | |
| 61 | echo "" |
| 62 | echo "⏳ Waiting for services to be ready..." |
| 63 | sleep 5 |
| 64 | |
| 65 | echo "" |
| 66 | echo "✅ Pixelle-Video is now running!" |
| 67 | echo "" |
| 68 | echo "Services:" |
| 69 | echo " 🌐 Web UI: http://localhost:8501" |
| 70 | echo " 🔌 API: http://localhost:8000" |
| 71 | echo " 📚 API Docs: http://localhost:8000/docs" |
| 72 | echo "" |
| 73 | echo "Custom Resources (optional):" |
| 74 | echo " 📁 data/bgm/ - Custom background music (overrides default)" |
| 75 | echo " 📁 data/templates/ - Custom HTML templates (overrides default)" |
| 76 | echo " 📁 data/workflows/ - Custom ComfyUI workflows (overrides default)" |
| 77 | echo "" |
| 78 | echo "Useful commands:" |
| 79 | echo " View logs: $DOCKER_COMPOSE logs -f" |
| 80 | echo " Stop: $DOCKER_COMPOSE down" |
| 81 | echo " Restart: $DOCKER_COMPOSE restart" |
| 82 | echo " Rebuild: $DOCKER_COMPOSE up -d --build" |
| 83 | echo "" |
| 84 | |
| 85 |