Script bash para desplegar un plugin vía SSH

bash marzo 11, 2026

Automatiza el proceso de empaquetar y subir un plugin al servidor de producción con un solo comando. Evita errores manuales y acelera el flujo de trabajo de despliegue.

Casos de uso: despliegue de plugins propios a clientes, actualización de plugins en servidores Hetzner o VPS, flujos de CI/CD simples sin herramientas externas.

#!/bin/bash
# deploy.sh — Despliega el plugin en producción vía SSH
# Uso: bash deploy.sh

PLUGIN_DIR="mi-plugin"
SERVER="usuario@tuservidor.com"
RUTA_REMOTA="/var/www/html/wp-content/plugins/"

echo "Generando ZIP del plugin..."
zip -r ${PLUGIN_DIR}.zip ${PLUGIN_DIR}/ \
    --exclude "*.git*" \
    --exclude "node_modules/*" \
    --exclude "*.DS_Store"

echo "Subiendo al servidor..."
scp ${PLUGIN_DIR}.zip ${SERVER}:${RUTA_REMOTA}

echo "Descomprimiendo en el servidor..."
ssh ${SERVER} "cd ${RUTA_REMOTA} && unzip -o ${PLUGIN_DIR}.zip && rm ${PLUGIN_DIR}.zip"

echo "Despliegue completado."
rm ${PLUGIN_DIR}.zip
  • zip –exclude — Excluye archivos innecesarios en producción como .git, node_modules y archivos del sistema.
  • scp — Copia el ZIP al servidor remoto via SSH de forma segura.
  • unzip -o — El flag -o sobreescribe los archivos existentes sin pedir confirmación.
  • rm al final — Elimina el ZIP tanto en local como en el servidor para no dejar archivos innecesarios.