Cómo Configurar un Servidor Git Privado en VPS
Guía completa para configurar su propio servidor Git privado en un VPS. Aprenda cómo alojar repositorios Git con control completo y privacidad usando GitLab, Gitea o repositorios bare.

Alojar su propio servidor Git le brinda control completo sobre sus repositorios de código, garantizando privacidad y evitando la dependencia de servicios de terceros. Ya sea que necesite un repositorio bare simple o una plataforma completa de alojamiento Git, esta guía cubre múltiples opciones para configurar un servidor Git privado en su VPS.
¿Por Qué Alojar Su Propio Servidor Git?
- Privacidad completa: Su código permanece en su servidor
- Sin dependencia del proveedor: Control completo sobre sus repositorios
- Personalización: Configure exactamente como desee
- Rentable: Un servidor para repositorios ilimitados
- Cumplimiento: Cumpla con los requisitos de residencia de datos
- Aprendizaje: Comprenda los internos del servidor Git
Opción 1: GitLab (Completo)
GitLab proporciona una plataforma DevOps completa:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash
apt install gitlab-ce
gitlab-ctl reconfigure
# Acceda a GitLab en http://ip-de-su-servidor
# Nombre de usuario predeterminado: root
# Establezca la contraseña en el primer inicio de sesiónOpción 2: Gitea (Ligero)
Gitea es un servicio Git ligero y autohospedado:
wget -O gitea https://dl.gitea.io/gitea/1.21.0/gitea-1.21.0-linux-amd64
chmod +x gitea
mv gitea /usr/local/bin/
# Crear servicio systemd
nano /etc/systemd/system/gitea.service
# Configure e inicie Gitea
systemctl enable gitea
systemctl start giteaOpción 3: Repositorio Git Bare (Simple)
Para alojamiento Git básico sin interfaz web:
mkdir -p /srv/git/miproyecto.git
cd /srv/git/miproyecto.git
git --bare init
# Establecer permisos adecuados
chown -R git:git /srv/git
chmod -R 755 /srv/git
# Clonar desde el cliente:
git clone git@su-servidor:/srv/git/miproyecto.gitConfiguración de Acceso SSH
Configure SSH para acceso seguro a Git:
adduser git
su - git
mkdir .ssh
chmod 700 .ssh
nano .ssh/authorized_keys
# Agregue claves públicas de desarrolladores
chmod 600 .ssh/authorized_keys
# Probar conexión:
ssh git@su-servidorMejores Prácticas de Seguridad
- Use claves SSH en lugar de contraseñas
- Habilite la autenticación de dos factores (GitLab/Gitea)
- Copias de seguridad regulares de repositorios
- Mantenga el software del servidor Git actualizado
- Configure el firewall para restringir el acceso
- Use SSL/TLS para interfaces web
- Implemente controles de acceso y permisos
- Monitoree los registros en busca de actividad sospechosa
Estrategia de Copia de Seguridad
Las copias de seguridad regulares son esenciales:
#!/bin/bash
# Script de copia de seguridad del repositorio Git
BACKUP_DIR="/backup/git"
REPO_DIR="/srv/git"
DATE=$(date +%Y%m%d)
tar -czf $BACKUP_DIR/git-backup-$DATE.tar.gz $REPO_DIR
# Mantenga los últimos 30 días
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete