Cómo hacer deploy de un sitio Astro a cPanel usando SSH desde Linux (sin GitHub)

Cómo hacer deploy de un sitio Astro a cPanel usando SSH desde Linux (sin GitHub)

Migrar un sitio a una arquitectura más moderna como Astro es una gran decisión, pero cuando trabajas con hosting tradicional como cPanel, surge una duda común:

¿Cómo hacer deploy sin depender de GitHub o pipelines externos?

En este artículo te explico cómo hacer un deploy directo desde tu máquina Linux a cPanel usando SSH + rsync, de forma rápida, segura y profesional.

¿Por qué usar SSH en lugar de FTP?

Aunque FTP sigue siendo común, tiene varias desventajas:

  • Transferencias más lentas
  • Menor control sobre archivos
  • No hay sincronización inteligente

Con SSH y rsync obtienes:

  • Transferencias rápidas (solo sube cambios)
  • Sincronización automática
  • Control total del servidor
  • Flujo de trabajo profesional

Requisitos

Antes de empezar necesitas:

  • Acceso a cPanel
  • SSH habilitado en tu hosting
  • Una máquina Linux (ej. Linux Mint, Ubuntu)
  • Proyecto Astro funcionando

Paso 1: generar una llave SSH

En tu terminal ejecuta:

ssh-keygen -t ed25519 -C "cpanel-deploy" -f ~/.ssh/cpanel_astro

Esto generará:

~/.ssh/cpanel_astro
~/.ssh/cpanel_astro.pub

 

Paso 2: subir la llave a cPanel

  • Entra a cPanel
  • Ve a SSH Access
  • Entra a Manage SSH Keys
  • Click en Import Key
  • Pega el contenido de:
cat ~/.ssh/cpanel_astro.pub
  • Guarda
  • Haz clic en Authorize

Este paso es clave: si no autorizas la llave, no podrás conectarte.

ssh -i ~/.ssh/cpanel_astro usuario@tudominio.com

Si usas puerto personalizado:

ssh -i ~/.ssh/cpanel_astro -p 2222 usuario@tudominio.com

Paso 4: ubicar la carpeta del sitio

Dentro del servidor:

cd public_html
pwd
ls

Normalmente será:

/home/usuario/public_html

Paso 5: compilar el proyecto Astro

En tu máquina local:

npm run build

Esto genera la carpeta:

dist/

Paso 6: subir el sitio con rsync

Primer deploy (sin borrar nada):

rsync -avz -e "ssh -i ~/.ssh/cpanel_astro" dist/ usuario@tudominio.com:/home/usuario/public_html/

Esto sube todos los archivos de Astro al servidor.

Paso 7: verificar el sitio

Abre tu dominio y revisa:

  • Que cargue correctamente
  • Estilos y JS funcionando
  • Imágenes visibles

Paso 8: deploy profesional con sincronización

Una vez validado, puedes usar:

rsync -avz --delete -e "ssh -i ~/.ssh/cpanel_astro" dist/ usuario@tudominio.com:/home/usuario/public_html/

Esto:

  • Actualiza archivos
  • Elimina archivos viejos
  • Mantiene el servidor limpio

 

¿Qué pasa si tienes archivos que no quieres borrar?

En ese caso, usa exclusiones.

Crear archivo de exclusiones

.well-known/
cgi-bin/
archivo-especial.php
carpeta-importante/

Guárdalo como:

deploy-exclude.txt

rsync -avz --delete \
-e "ssh -i ~/.ssh/cpanel_astro" \
--exclude-from="deploy-exclude.txt" \
dist/ usuario@tudominio.com:/home/usuario/public_html/

Flujo final recomendado

Cada vez que actualices tu sitio:

npm run build && rsync -avz --delete \
-e "ssh -i ~/.ssh/cpanel_astro" \
--exclude-from="deploy-exclude.txt" \
dist/ usuario@tudominio.com:/home/usuario/public_html/

Ventajas de este enfoque

  • No dependes de GitHub
  • Deploy rápido y directo
  • Control total del servidor
  • Ideal para proyectos con clientes
  • Compatible con cualquier hosting cPanel

Migrar de WordPress a Astro no solo mejora rendimiento, también cambia la forma en que despliegas tus proyectos.

Con este flujo:

  • Reduces errores
  • Automatizas tu trabajo
  • y te acercas a un nivel más profesional en desarrollo

Si trabajas con múltiples sitios o clientes, este método se vuelve una herramienta clave en tu stack.

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *