Cómo instalar el servidor HTTP Git en Ubuntu 20.04 LTS

Cómo instalar el servidor HTTP Git en Ubuntu 20.04 LTS

 

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). HTTP Git Server 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 se supone que está ejecutando en la cuenta raíz, si no, es posible que deba agregar ‘ sudo‘ a los comandos para obtener privilegios de raíz. 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.

Instale el 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 los siguientes aptcomandos en la terminal.

sudo apt update
sudo apt upgrade
sudo apt install fcgiwrap apache2-utils unzip

Paso 2. Instalar Nginx en Ubuntu 20.04.

Nginx está disponible en los repositorios predeterminados de Ubuntu. Para instalarlo ejecuta el siguiente comando:

sudo apt install nginx

Una vez que se complete 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

Configuración del 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. Instalar Git en Ubuntu 20.04.

Ejecute el siguiente comando a continuación para instalar Git en su sistema Ubuntu:

sudo apt install git

Confirme Git la instalación:

git --version

Paso 4. Crea un Repositorio Git.

Ahora creamos un directorio para almacenar el repositorio de Git:

mkdir /var/www/html/computerfreaks-repo

A continuación, cambie el directorio y cree otro directorio para los usuarios:computerfreaks-repo

cd /var/www/html/myrepo
mkdir user.git

Ahora inicializaremos el repositorio con el comando:

cd user.git
git --bare init

A continuación, actualice el servidor Git con el comando:

git update-server-info

Dale al repositorio la propiedad correcta con el comando:

chown -R www-data:www-data /var/www/html/computerfreaks-repo
chmod -R 755 /var/www/html/computerfreaks-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/computerfreaks-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/computerfreaks-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/computerfreaks-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/computerfreaks-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, crea un directorio para tu proyecto con el siguiente comando:

mkdir my-project

A continuación, navegue hasta el directorio de su proyecto e inicialice Git con el comando:

cd my-project
git init

Recomendamos configurar su Git para confirmar el correo electrónico y el nombre de usuario. Para hacer eso, ejecute los siguientes comandos:

git config --global user.email "user@your-domain.com"
git config --global user.name "user"

Después de eso, agrega tu repositorio Git remoto con el siguiente comando:

git remote add origin http://user@git.your-domain.com/user.git

A continuación, cree un directorio llamado dev y agregue un archivo dentro de él:

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://user@git.your-domain.com/user.git

¡Felicidades! Ha instalado con éxito el servidor HTTP Git. 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 que consulte el sitio web oficial de Git .

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.