80 lines
3.0 KiB
Bash
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
|