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.
