100 lines
2.5 KiB
Bash
Executable File
100 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
echo "🚀 PREPARANDO DEPLOY PARA EASYPANEL"
|
|
echo "==================================="
|
|
|
|
# 1. Crear directorio ssl
|
|
echo "1. Creando estructura de directorios..."
|
|
mkdir -p ssl logs
|
|
|
|
# 2. Crear certificados dummy (EasyPanel los reemplazará)
|
|
echo "2. Creando certificados dummy..."
|
|
if [ ! -f ssl/cert.pem ]; then
|
|
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
|
|
-keyout ssl/key.pem \
|
|
-out ssl/cert.pem \
|
|
-subj "/C=US/ST=State/L=City/O=Organization/CN=localhost" 2>/dev/null || \
|
|
echo "⚠️ OpenSSL no disponible - EasyPanel manejará SSL"
|
|
fi
|
|
|
|
# 3. Crear .dockerignore
|
|
echo "3. Optimizando build..."
|
|
cat > .dockerignore << 'EOF'
|
|
node_modules
|
|
.git
|
|
.env*
|
|
*.log
|
|
logs/
|
|
ssl/
|
|
*.md
|
|
.vscode
|
|
.idea
|
|
dist
|
|
coverage
|
|
.nyc_output
|
|
EOF
|
|
|
|
# 4. Verificar archivos necesarios
|
|
echo "4. Verificando archivos..."
|
|
REQUIRED_FILES=(
|
|
"Dockerfile"
|
|
"docker-compose.yml"
|
|
"nginx.conf"
|
|
".env.production"
|
|
)
|
|
|
|
for file in "${REQUIRED_FILES[@]}"; do
|
|
if [ -f "$file" ]; then
|
|
echo " ✅ $file"
|
|
else
|
|
echo " ❌ $file - FALTANTE"
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
# 5. Test de build local (opcional)
|
|
echo "5. ¿Quieres probar el build localmente? (y/n)"
|
|
read -r TEST_BUILD
|
|
|
|
if [ "$TEST_BUILD" = "y" ] || [ "$TEST_BUILD" = "Y" ]; then
|
|
echo "Construyendo imagen de prueba..."
|
|
docker build -t openvidu-meet-test . || {
|
|
echo "❌ Error en el build - revisar Dockerfile"
|
|
exit 1
|
|
}
|
|
echo "✅ Build exitoso"
|
|
fi
|
|
|
|
echo ""
|
|
echo "🎉 PREPARACIÓN COMPLETADA"
|
|
echo "========================="
|
|
echo ""
|
|
echo "📋 PASOS PARA EASYPANEL:"
|
|
echo ""
|
|
echo "1. Crear nuevo proyecto en EasyPanel"
|
|
echo "2. Conectar repositorio Git"
|
|
echo "3. Configurar variables de entorno:"
|
|
echo " - Copiar contenido de .env.production"
|
|
echo " - Ajustar LIVEKIT_URL y secrets"
|
|
echo ""
|
|
echo "4. Configurar build:"
|
|
echo " - Dockerfile: ./Dockerfile"
|
|
echo " - Puerto: 80 (nginx) o 6080 (directo)"
|
|
echo ""
|
|
echo "5. Configurar dominio y SSL en EasyPanel"
|
|
echo ""
|
|
echo "📁 ARCHIVOS LISTOS:"
|
|
echo " ✅ Dockerfile (multi-stage optimizado)"
|
|
echo " ✅ docker-compose.yml (con nginx proxy)"
|
|
echo " ✅ nginx.conf (configuración completa)"
|
|
echo " ✅ .env.production (variables de ejemplo)"
|
|
echo ""
|
|
echo "🔗 URLs después del deploy:"
|
|
echo " • Admin: https://tu-dominio.com"
|
|
echo " • API: https://tu-dominio.com/api/"
|
|
echo " • Health: https://tu-dominio.com/nginx-health"
|
|
echo ""
|
|
echo "👤 Login por defecto:"
|
|
echo " • Usuario: admin"
|
|
echo " • Contraseña: [configurar en ADMIN_PASSWORD]" |