GitDeployRepositorios6 min de lectura

Instalar y usar Git en el servidor

Instalá Git, creá repositorios bare y configurá hooks para deploy automático.


Git en el servidor te permite recibir código directamente y ejecutar deploys automáticos con hooks.

Paso 1 — Instalar Git

bash
sudo apt update
sudo apt install git -y
git --version

Paso 2 — Crear un repositorio bare

Un repositorio bare no tiene working directory, solo recibe pushes:

bash
mkdir -p /home/deploy/repos/miapp.git
cd /home/deploy/repos/miapp.git
git init --bare

Paso 3 — Configurar hook post-receive

Este hook se ejecuta cada vez que hacés push al servidor:

bash
nano /home/deploy/repos/miapp.git/hooks/post-receive

Contenido:

bash
#!/bin/bash
TARGET="/var/www/miapp"
GIT_DIR="/home/deploy/repos/miapp.git"
BRANCH="main"

while read oldrev newrev ref
do
  if [ "$ref" = "refs/heads/$BRANCH" ]; then
    echo "Desplegando rama $BRANCH..."
    git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f $BRANCH
    cd $TARGET
    # Comandos post-deploy
    echo "Deploy completado: $(date)"
  fi
done

Dale permisos:

bash
chmod +x /home/deploy/repos/miapp.git/hooks/post-receive

Paso 4 — Preparar directorio de destino

bash
sudo mkdir -p /var/www/miapp
sudo chown deploy:deploy /var/www/miapp

Paso 5 — Configurar remote en tu máquina local

bash
cd ~/mi-proyecto
git remote add produccion deploy@TU_IP:/home/deploy/repos/miapp.git

Paso 6 — Hacer deploy

bash
git push produccion main

El hook se ejecuta automáticamente y despliega el código.

Paso 7 — Hook avanzado con reinicio de servicio

bash
#!/bin/bash
TARGET="/var/www/miapp"
GIT_DIR="/home/deploy/repos/miapp.git"
BRANCH="main"

while read oldrev newrev ref
do
  if [ "$ref" = "refs/heads/$BRANCH" ]; then
    echo "Desplegando..."
    git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f $BRANCH
    cd $TARGET
    bun install --frozen-lockfile
    bun run build
    sudo systemctl restart miapp
    echo "Deploy OK: $(date)"
  fi
done

Ver historial de deploys

bash
cd /home/deploy/repos/miapp.git
git log --oneline -10

Con Git en tu VPS de Baires Host, tenés un flujo de deploy simple y controlado sin depender de servicios externos.


¿Te resultó útil esta guía?