TubeScript-API/docker-start.sh

80 lines
3.0 KiB
Bash

#!/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