🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo usar Git en DirectAdmin para desplegar aplicaciones

Actualizado el 8 de junio de 2026

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:

  1. Entra a tu panel de DirectAdmin.
  2. Ve a Cuenta de usuario > Acceso SSH.
  3. Marca la opción Habilitar acceso SSH.
  4. 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 usuario y tudominio.com con 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 composer y npm esté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 .env o 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 main sin 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!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel