Encontranos en redes
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 --versionPaso 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 --barePaso 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-receiveContenido:
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
doneDale permisos:
bash
chmod +x /home/deploy/repos/miapp.git/hooks/post-receivePaso 4 — Preparar directorio de destino
bash
sudo mkdir -p /var/www/miapp
sudo chown deploy:deploy /var/www/miappPaso 5 — Configurar remote en tu máquina local
bash
cd ~/mi-proyecto
git remote add produccion deploy@TU_IP:/home/deploy/repos/miapp.gitPaso 6 — Hacer deploy
bash
git push produccion mainEl 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
doneVer historial de deploys
bash
cd /home/deploy/repos/miapp.git
git log --oneline -10Con 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?