En este tutorial, le mostraremos cómo instalar HTTP Git Server en Ubuntu 20.04 LTS. Para aquellos de ustedes que no lo sabían, HTTP Git Server es un proyecto de código abierto que utiliza un servidor web Nginx para servir repositorios Git a través de su red de área local (LAN). El servidor HTTP Git es sorprendentemente fácil de configurar y administrar.
Este artículo asume que tiene al menos conocimientos básicos de Linux, sabe cómo usar el shell y, lo que es más importante, aloja su sitio en su propio VPS. La instalación es bastante simple y asume que se están ejecutando en la cuenta raíz, si no, es posible que deba agregar 'sudo
' a los comandos para obtener privilegios de root. Le mostraré la instalación paso a paso de HTTP Git Server en Ubuntu 20.04 (Focal Fossa). Puede seguir las mismas instrucciones para Ubuntu 18.04, 16.04 y cualquier otra distribución basada en Debian como Linux Mint.
Requisitos previos
- Un servidor que ejecuta uno de los siguientes sistemas operativos:Ubuntu 20.04, 18.04, 16.04 y cualquier otra distribución basada en Debian como Linux Mint.
- Se recomienda que utilice una instalación de sistema operativo nueva para evitar posibles problemas.
- Un
non-root sudo user
o acceder alroot user
. Recomendamos actuar como unnon-root sudo user
, sin embargo, puede dañar su sistema si no tiene cuidado al actuar como root.
Instalar servidor HTTP Git en Ubuntu 20.04 LTS Focal Fossa
Paso 1. Primero, asegúrese de que todos los paquetes de su sistema estén actualizados ejecutando el siguiente apt
comandos en la terminal.
sudo apt update sudo apt upgrade sudo apt install fcgiwrap apache2-utils unzip
Paso 2. Instalación de Nginx en Ubuntu 20.04.
Nginx está disponible en los repositorios predeterminados de Ubuntu. Para instalarlo, ejecute el siguiente comando:
sudo apt install nginx
Una vez completada la instalación, ejecute los comandos para permitir que Nginx se inicie automáticamente cuando se inicie su servidor:
sudo systemctl stop nginx sudo systemctl start nginx sudo systemctl enable nginx
Configurando cortafuegos.
Mientras tanto, debe asegurarse de que su firewall esté configurado para permitir el tráfico en los puertos HTTP (80) y HTTPS (443). Nginx se registra como un servicio con ufw
:
sudo ufw allow in "Nginx Full"
Paso 3. Instalación de Git en Ubuntu 20.04.
Ejecute el siguiente comando a continuación para instalar Git en su sistema Ubuntu:
sudo apt install git
Confirmar Git la instalación:
git --version
Paso 4. Crea un Repositorio Git.
Ahora creamos un directorio para almacenar el repositorio Git:
mkdir /var/www/html/idroot-repo
Luego, cambie el directorio a idroot-repo
y crea otro directorio para los usuarios:
cd /var/www/html/myrepo mkdir user.git
Ahora inicializaremos el repositorio con el comando:
cd user.git git --bare init
Luego, actualice el Servidor Git con el comando:
git update-server-info
Otorgue al repositorio la propiedad correcta con el comando:
chown -R www-data:www-data /var/www/html/idroot-repo chmod -R 755 /var/www/html/idroot-repo
Después de eso, cree un usuario llamado usuario y establezca una contraseña para restringir el acceso al repositorio de git mediante la autenticación básica HTTP:
htpasswd -c /var/www/html/idroot-repo/htpasswd user
Paso 5. Configure Nginx para servir el repositorio de Git.
Ahora creamos un archivo de configuración de host virtual de Nginx para servir el repositorio de Git:
nano /etc/nginx/conf.d/git.conf
Agregue las siguientes líneas:
server { listen 80; root /var/www/html/idroot-repo; # Add index.php to the list if you are using PHP index index.html index.htm index.nginx-debian.html; server_name git.your-domain.com; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; } location ~ (/.*) { client_max_body_size 0; auth_basic "Git Login"; auth_basic_user_file "/var/www/html/idroot-repo/htpasswd"; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; fastcgi_param GIT_HTTP_EXPORT_ALL ""; fastcgi_param GIT_PROJECT_ROOT /var/www/html/idroot-repo; fastcgi_param REMOTE_USER $remote_user; fastcgi_param PATH_INFO $1; fastcgi_pass unix:/var/run/fcgiwrap.socket; } }
Guarde y cierre el archivo, luego reinicie el servicio Nginx para aplicar los cambios:
nginx -t sudo systemctl restart nginx
Paso 6. Conéctese al repositorio de Git desde el cliente.
Primero, cree un directorio para su proyecto con el siguiente comando:
mkdir my-project
Luego, navegue hasta el directorio de su proyecto e inicialice Git usando el comando:
cd my-project git init
Recomendamos configurar su Git para confirmar el correo electrónico y el nombre de usuario. Para hacerlo, ejecute los siguientes comandos:
git config --global user.email "[email protected]" git config --global user.name "user"
Después de eso, agregue su repositorio Git remoto con el siguiente comando:
git remote add origin http://[email protected]/user.git
Luego, cree un directorio llamado dev y agregue un archivo dentro:
mkdir dev echo "This is my first my application" > dev/file
Ahora podemos agregar esos archivos a git con el comando:
git add .
Confirme los cambios con el comando:
git commit -a -m "Add files and directories"
Luego, envíe todos nuestros directorios y archivos recién creados al servidor con el comando:
git push origin master
Una vez que esté conectado, obtendrá el siguiente resultado:
Counting objects: 8, done. Writing objects: 100% (4/4), 512 bytes | 346.00 KiB/s, done. Total 8 (delta 0), reused 0 (delta 0) To http://git.your-domain.com/user.git * [new branch] master -> master
También puede descargar su repositorio desde el servidor Git directamente usando el siguiente comando:
git clone http://[email protected]/user.git
¡Felicitaciones! Ha instalado con éxito HTTP Git Server. Gracias por usar este tutorial para instalar HTTP Git Server en su sistema Ubuntu 20.04 LTS Focal Fossa. Para obtener ayuda adicional o información útil, le recomendamos consulte el sitio web oficial de Git.