#!/bin/bash # Script para iniciar TubeScript-API con docker compose set -e GREEN='\033[0;32m'; YELLOW='\033[1;33m'; RED='\033[0;31m'; NC='\033[0m' print_success() { echo -e "${GREEN}✅ $1${NC}"; } print_warning() { echo -e "${YELLOW}⚠️ $1${NC}"; } print_error() { echo -e "${RED}❌ $1${NC}"; } echo "════════════════════════════════════════════════════════════" echo " 🐳 TubeScript-API — docker compose up" echo "════════════════════════════════════════════════════════════" echo "" # Verificar Docker if ! command -v docker &>/dev/null; then print_error "Docker no está instalado"; exit 1 fi print_success "Docker encontrado: $(docker --version)" echo "" # Crear carpeta data con permisos correctos (necesaria para cookies.txt y otros) if [ ! -d "data" ]; then mkdir -p data && chmod 755 data print_success "Creado directorio ./data" else print_success "Directorio ./data ya existe" fi # Sugerencia de cookies if [ ! -f "data/cookies.txt" ]; then touch data/cookies.txt print_warning "data/cookies.txt vacío creado (sube cookies con POST /upload_cookies)" else print_success "data/cookies.txt encontrado" fi echo "" # Detener contenedores existentes echo "🛑 Deteniendo contenedores existentes..." docker compose down 2>/dev/null || true echo "" # Build + arranque con CACHEBUST para forzar copia fresca del código export CACHEBUST="$(date +%s)" echo "🔨 Construyendo e iniciando servicios..." echo " (CACHEBUST=${CACHEBUST} — solo invalida la capa de código, no las capas de apt/pip)" echo "" docker compose up -d --build if [ $? -eq 0 ]; then echo "" echo "⏳ Esperando arranque de uvicorn..." sleep 8 echo "" echo "📊 Estado:" docker compose ps echo "" echo "📋 Logs recientes:" docker compose logs --tail=6 echo "" echo "════════════════════════════════════════════════════════════" print_success "¡Listo!" echo "════════════════════════════════════════════════════════════" echo "" echo " 🌐 API: http://localhost:8282" echo " 📖 Docs: http://localhost:8282/docs" echo " 🍪 Subir cookies: curl -X POST http://localhost:8282/upload_cookies -F 'file=@cookies.txt'" echo "" echo " 📝 Comandos útiles:" echo " Logs en vivo: docker compose logs -f tubescript-api" echo " Detener: docker compose down" echo " Rebuild: CACHEBUST=\$(date +%s) docker compose up -d --build" echo "" else print_error "Error al iniciar servicios" docker compose logs --tail=20 exit 1 fi