Cómo usar Git en DirectAdmin para desplegar aplicaciones
Introducción: ¿Por qué usar Git con DirectAdmin?
Si estás leyendo esto, probablemente ya sabes que Git es la herramienta de control de versiones más popular del mundo. Lo que quizás no sepas es que puedes combinarlo con DirectAdmin para desplegar tus aplicaciones de forma automática, sin necesidad de usar FTP ni gestores de archivos manuales.
La idea es sencilla: cuando haces un git push a tu repositorio, los cambios se reflejan automáticamente en tu hosting. Esto te ahorra tiempo, evita errores humanos y hace que el flujo de trabajo sea mucho más profesional.
En esta guía de Git DirectAdmin, te explicaré paso a paso cómo configurarlo, incluso si nunca has tocado una terminal en tu vida. Vamos a ello.
Requisitos previos para desplegar Git en DirectAdmin
Antes de empezar, necesitas tener lo siguiente:
- Un servidor con DirectAdmin (la versión 1.64 o superior es recomendable).
- Acceso SSH a tu servidor (si no lo tienes, puedes activarlo desde el panel en Cuenta de usuario > Acceso SSH).
- Git instalado en tu servidor (normalmente ya viene, pero lo verificaremos).
- Un repositorio remoto (puede ser GitHub, GitLab, Bitbucket o uno privado).
- Conocimientos básicos de comandos Linux (aunque te guiaré en todo).
[INFO] Si tu proveedor de hosting usa Syspanel (antes conocido como HestiaCP), el acceso a la terminal suele estar en el puerto 2106. No obstante, esta guía está enfocada en DirectAdmin, que es un panel diferente.
Paso 1: Activar el acceso SSH en DirectAdmin
Para poder usar Git desde la terminal, necesitas acceso SSH. Sigue estos pasos:
- Entra a tu panel de DirectAdmin.
- Ve a Cuenta de usuario > Acceso SSH.
- Marca la opción Habilitar acceso SSH.
- Guarda los cambios.
Ahora necesitas conectarte a tu servidor. En Windows puedes usar PuTTY, en Mac o Linux simplemente abre la terminal.
El comando básico sería:
ssh usuario@tudominio.com
Te pedirá tu contraseña de DirectAdmin (o la clave SSH si configuraste una). Una vez dentro, verifica que Git esté instalado:
git --version
Si no aparece, instálalo con:
sudo apt install git -y
[TIP] Si no tienes permisos de
sudo, contacta con tu proveedor de hosting para que instale Git por ti.
Paso 2: Crear la estructura de carpetas en tu hosting
Cuando te conectas por SSH, normalmente aterrizas en tu carpeta principal (home). La estructura típica es algo así:
/home/usuario/
├── domains/
│ └── tudominio.com/
│ ├── public_html/
│ ├── private_html/
│ └── logs/
Para desplegar Git en DirectAdmin, lo más limpio es crear una carpeta fuera de public_html para el repositorio "desnudo" (bare repository) y otra para la copia de trabajo.
Ejecuta estos comandos:
mkdir -p ~/repos/miapp.git
mkdir -p ~/domains/tudominio.com/public_html/miapp
La primera carpeta será el repositorio central. La segunda será donde se publicará tu aplicación.
Paso 3: Inicializar el repositorio Git
Ahora entra en la carpeta del repositorio central e inicializa un repositorio desnudo:
cd ~/repos/miapp.git
git init --bare
Este tipo de repositorio no tiene archivos de trabajo, solo el historial. Es perfecto para recibir los "pushes".
Ahora, en la carpeta de publicación, inicializa un repositorio normal:
cd ~/domains/tudominio.com/public_html/miapp
git init
Paso 4: Configurar el hook de post-receive
Aquí es donde ocurre la magia de desplegar Git DirectAdmin. Vamos a crear un script que se ejecute automáticamente cada vez que hagas un push.
Crea el archivo de hook:
nano ~/repos/miapp.git/hooks/post-receive
Y pega el siguiente contenido:
#!/bin/bash
TARGET="/home/usuario/domains/tudominio.com/public_html/miapp"
git --work-tree=$TARGET --git-dir=/home/usuario/repos/miapp.git checkout -f
[WARNING] Reemplaza
usuarioytudominio.comcon tus valores reales. Si no lo haces, el script fallará.
Guarda el archivo (Ctrl+O, luego Enter, y Ctrl+X para salir).
Ahora dale permisos de ejecución:
chmod +x ~/repos/miapp.git/hooks/post-receive
Paso 5: Conectar tu repositorio remoto
Ahora tienes que conectar tu proyecto local (en tu ordenador) con este repositorio del servidor.
En tu máquina local, dentro de tu proyecto, ejecuta:
git remote add produccion ssh://usuario@tudominio.com:puerto/home/usuario/repos/miapp.git
[INFO] El puerto SSH normalmente es el 22, pero algunos proveedores usan otros. Si no estás seguro, compruébalo en tu panel de DirectAdmin.
Ahora haz tu primer push:
git push produccion master
Si todo está bien, verás que se ejecuta el hook y tus archivos aparecen en public_html/miapp.
Paso 6: Verificar el despliegue
Para asegurarte de que todo funciona, abre tu navegador y visita:
https://tudominio.com/miapp
Deberías ver tu aplicación. Si no aparece, revisa los permisos de la carpeta:
chmod -R 755 ~/domains/tudominio.com/public_html/miapp
También puedes comprobar los logs de Git:
cd ~/repos/miapp.git
git log --oneline
Paso 7: Automatizar el despliegue con ramas
Si trabajas con ramas (por ejemplo, develop y main), puedes modificar el hook para que solo despliegue cuando hagas push a la rama principal.
Actualiza el hook post-receive con:
#!/bin/bash
TARGET="/home/usuario/domains/tudominio.com/public_html/miapp"
BRANCH="main"
while read oldrev newrev ref
do
if [[ $ref = refs/heads/$BRANCH ]];
then
echo "Desplegando cambios en $BRANCH..."
git --work-tree=$TARGET --git-dir=/home/usuario/repos/miapp.git checkout -f
else
echo "Rama $ref ignorada. Solo se despliega $BRANCH"
fi
done
Así, si haces push a develop, no se tocará tu sitio en producción.
Paso 8: Manejar dependencias y builds
Si tu aplicación usa Composer (PHP), npm (Node.js) o similares, necesitas que el hook ejecute esos comandos después del checkout.
Modifica el hook así:
#!/bin/bash
TARGET="/home/usuario/domains/tudominio.com/public_html/miapp"
GIT_DIR="/home/usuario/repos/miapp.git"
git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f
cd $TARGET
if [ -f "composer.json" ]; then
echo "Instalando dependencias de Composer..."
composer install --no-dev --optimize-autoloader
fi
if [ -f "package.json" ]; then
echo "Instalando dependencias npm..."
npm install --production
fi
[TIP] Asegúrate de que
composerynpmestén disponibles en tu servidor. Si no, instálalos o pide a tu proveedor que lo haga.
Paso 9: Solucionar problemas comunes
El push funciona, pero no veo cambios
Esto suele pasar por permisos incorrectos o porque el post-receive no tiene permisos de ejecución. Verifica:
ls -la ~/repos/miapp.git/hooks/post-receive
Debe aparecer -rwxr-xr-x. Si no, dale permisos de nuevo.
Error de permisos al hacer checkout
Prueba a cambiar el propietario de la carpeta de destino:
chown -R usuario:usuario ~/domains/tudominio.com/public_html/miapp
No puedo conectarme por SSH
Asegúrate de que el puerto SSH esté abierto y que tu IP esté permitida en el firewall de DirectAdmin.
Paso 10: Buenas prácticas y seguridad
Para terminar esta guía de Git DirectAdmin, te dejo algunos consejos:
- Nunca subas archivos sensibles como
.envo claves privadas a tu repositorio. Usa un archivo.gitignore. - Crea backups periódicos de tu base de datos y archivos.
- Usa ramas para desarrollo y producción. No hagas push directo a
mainsin probar antes. - Limpia el historial si tu repositorio crece demasiado:
git gc --aggressive --prune=now. - Si usas Syspanel (el antiguo HestiaCP) en lugar de DirectAdmin, el proceso es similar, pero el acceso SSH suele estar en el puerto 2106.
Preguntas frecuentes (FAQ)
¿Puedo usar Git en hosting compartido con DirectAdmin?
Sí, siempre que el proveedor permita acceso SSH y tengas permisos para ejecutar scripts. La mayoría de planes profesionales lo permiten.
¿Qué pasa si mi aplicación necesita variables de entorno?
Puedes definir variables en el hook post-receive o usar un archivo .env que no esté versionado. Nunca lo subas al repositorio.
¿Puedo desplegar en varias carpetas desde un solo repositorio?
Sí. Solo tienes que duplicar el hook y ajustar las rutas de destino en función de la rama o el nombre del push.
¿Es seguro usar Git para producción?
Absolutamente. De hecho, es la forma más segura de desplegar, porque siempre puedes revertir a una versión anterior con un simple git revert.
¿Y si mi proveedor usa Syspanel?
Si tu panel es Syspanel (antes HestiaCP), el proceso es muy parecido. La diferencia principal es que el acceso SSH se hace por el puerto 2106. El resto de comandos funcionan igual.
Conclusión
Has aprendido a usar Git DirectAdmin para desplegar aplicaciones de forma profesional y sin dolores de cabeza. Con este flujo, cada push a tu repositorio actualizará tu sitio automáticamente, ahorrándote horas de trabajo manual.
Recuerda que la práctica hace al maestro. Empieza con un proyecto pequeño, prueba los comandos y ve ganando confianza. En poco tiempo estarás desplegando como un experto.
Si tienes dudas, revisa la documentación oficial de DirectAdmin o pregunta en los foros de tu proveedor de hosting. ¡Buena suerte con tus despliegues!
