almeira-web/package-hostinger.sh

65 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# Script para empaquetar la aplicación Next.js standalone para Hostinger Node.js App
set -e
echo "=== Iniciando empaquetado para Hostinger ==="
# 1. Asegurar que estamos en el directorio correcto
cd "$(dirname "$0")"
# 2. Compilar el proyecto
echo "Compilando la aplicación Next.js..."
npm run build
# 3. Validar la existencia del build standalone
if [ ! -d ".next/standalone" ]; then
echo "Error: No se generó el directorio .next/standalone."
echo "Asegúrate de que 'output: \"standalone\"' está configurado en next.config.ts"
exit 1
fi
# 4. Crear carpeta temporal de empaquetado
DEPLOY_DIR="deploy-hostinger"
echo "Creando directorio temporal: $DEPLOY_DIR..."
rm -rf "$DEPLOY_DIR"
mkdir -p "$DEPLOY_DIR"
# 5. Copiar archivos standalone
echo "Copiando archivos del servidor standalone..."
cp -r .next/standalone/. "$DEPLOY_DIR/"
# 6. Copiar archivos estáticos y carpeta public (requerido por Next.js standalone)
echo "Copiando archivos estáticos (.next/static)..."
mkdir -p "$DEPLOY_DIR/.next/static"
cp -r .next/static/. "$DEPLOY_DIR/.next/static/"
if [ -d "public" ]; then
echo "Copiando carpeta public..."
cp -r public "$DEPLOY_DIR/"
else
echo "Advertencia: No se encontró la carpeta 'public'."
fi
# 7. Copiar archivo de entorno de ejemplo o variables
if [ -f ".env.local" ]; then
echo "Copiando variables locales como plantilla .env.production.example..."
cp .env.local "$DEPLOY_DIR/.env.production.example"
fi
# 8. Comprimir en un archivo zip
ZIP_FILE="almeira-web-deploy.zip"
echo "Comprimiendo aplicación en $ZIP_FILE..."
rm -f "$ZIP_FILE"
# Entrar al directorio temporal para que los archivos queden en la raíz del zip
cd "$DEPLOY_DIR"
zip -r "../$ZIP_FILE" . > /dev/null
cd ..
# 9. Limpiar directorio temporal
echo "Limpiando directorio temporal..."
rm -rf "$DEPLOY_DIR"
echo "=== ¡Listo! Se ha generado el archivo $ZIP_FILE con éxito. ==="
echo "Sube este archivo a tu hosting Node.js en Hostinger y descomprímelo en la raíz de tu aplicación."