Cómo montar su propio servidor Git

GitLab

Aprenda cómo configurar su propio servidor Git con este tutorial; tambien recuerde registrase en nuestro foro, en donde podrá resolver  dudas e inquietudes con el apoyo de toda nuestra comunidad.

Para empezar, vale la pena recordar que Git es un sistema de control de versiones desarrollado por Linus Torvalds, el cual es utilizado por millones de usuarios en todo el mundo. Empresas como GitHub ofrecen servicios de alojamiento de código basados ​​en Git. Según los informes, GitHub, un sitio de alojamiento de código, es el servicio de alojamiento de código más grande del mundo. La compañía afirma que hay 9.2 M de personas colaborando ahora en repositorios de 21.8 M en GitHub.

Monte su propio servidor Git

GitHub es un gran servicio, sin embargo, hay algunas limitaciones y restricciones, especialmente si usted es un desarrollador individual o pequeño. Una de las limitaciones de GitHub es que el servicio gratuito no permite el alojamiento privado del código. Tienes que pagar una tarifa mensual de $ 7 para alojar 5 repositorios privados, y los gastos aumentan con más repositorios. Ahora bajo la nueva administración de Microsoft, muchos usuarios han empezado a buscar alternativas diferentes a GitHub.

En casos como estos o cuando desee más control, la mejor opción es ejecutar Git en su propio servidor. No solamente ahorra costos, también tiene más control sobre su servidor. En la mayoría de los casos, algunos de los usuarios avanzados de Linux ya tienen sus propios servidores y montar Git en esos servidores es incrementar sustancialmente la funcionalidad del servidor.

En el presente tutorial vamos a hablar sobre dos métodos para administrar su código en su propio servidor. Uno está ejecutando un servidor Git básico y simple, y el segundo es a través de una herramienta de GUI llamada GitLab. Para este tutorial se utilizá un servidor LTS Ubuntu 14.04 completamente parcheado que se ejecuta en un VPS.

Instala Git en tu servidor

En este tutorial se considera un caso de uso en el que tenemos un servidor remoto y un servidor local y trabajaremos entre estas máquinas. En aras de la simplicidad los llamaremos servidor remoto y servidor local.

Primero, instale Git en ambas máquinas. Puede instalar Git desde los paquetes ya disponibles a través de repositorios o sus distribuciones, o puede hacerlo manualmente. En este artículo usaremos el método más simple:

sudo apt-get install git-core

Luego agrega un usuario para Git.

sudo useradd git
passwd git

Para facilitar el acceso al servidor, configuremos un inicio de sesión ssh sin contraseña. Primero crea las claves ssh en tu máquina local:

ssh-keygen -t rsa

Le pedirá que proporcione la ubicación para almacenar la clave, simplemente presione Enter para usar la ubicación predeterminada. La segunda pregunta será proporcionarle una frase de contraseña que será necesaria para acceder al servidor remoto. Genera dos claves: una pública y una privada. Anote la ubicación de la clave pública que necesitará en el siguiente paso.

Ahora debe copiar estas claves en el servidor para que las dos máquinas puedan comunicarse entre sí. Ejecute el siguiente comando en su máquina local:

cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

Ahora ssh en el servidor y crea un directorio de proyecto para Git. Puede usar la ruta deseada para el repositorio.

[email protected]:~ $ mkdir -p /home/swapnil/project-1.git

Luego cambie a este directorio:

cd /home/swapnil/project-1.git

Luego crea un repositorio vacío:

git init --bare
Initialized empty Git repository in /home/swapnil/project-1.git

Ahora necesitamos crear un repositorio de Git en la máquina local.

mkdir -p /home/swapnil/git/project

Y cambia a este directorio:

cd /home/swapnil/git/project

Ahora crea los archivos que necesitas para el proyecto en este directorio. Permanezca en este directorio e inicie git:

git init
Initialized empty Git repository in /home/swapnil/git/project

Ahora agregue archivos al repositorio:

git add .

Ahora, cada vez que agrega un archivo o realiza cambios, debe ejecutar el comando agregar anterior. También necesita escribir un mensaje de confirmación con cada cambio en un archivo. El mensaje de confirmación básicamente dice qué cambios se realizaron.

git commit -m "message" -a
[master (root-commit) 57331ee] message

 2 files changed, 2 insertions(+)
 create mode 100644 GoT.txt
 create mode 100644 writing.txt

En este caso, tenía un archivo llamado GoT (Revisión de Game of Thrones) y se hicieron algunos cambios, así que cuando se ejecute el comando especificó que se hicieron cambios en el archivo. En el comando anterior, la opción '-a' significa confirmaciones para todos los archivos en el repositorio. Si realizó cambios en solo uno, puede especificar el nombre de ese archivo en lugar de usar '-a'.

Un ejemplo:

git commit -m "message" GoT.txt

[master e517b10] message
 1 file changed, 1 insertion(+)

Hasta ahora hemos estado trabajando en el servidor local. Ahora tenemos que enviar estos cambios al servidor para que el trabajo sea accesible a través de Internet y pueda colaborar con otros miembros del equipo.

git remote add origin ssh://[email protected]/repo-<wbr< a="">>path-on-server..git

Ahora puede empujar o tirar de los cambios entre el servidor y la máquina local usando la opción 'push' o 'pull':

git push origin master

Si hay otros miembros del equipo que desean trabajar con el proyecto, deben clonar el repositorio del servidor en su máquina local:

git clone [email protected]:/home/swapnil/project.git

Esta, /home/swapnil/project.git es la ruta del proyecto en el servidor remoto, intercambia los valores para tu propio servidor.

Luego cambie el directorio en la máquina local (intercambie el proyecto con el nombre del proyecto en su servidor):

cd /project

Ahora pueden editar archivos, escribir mensajes de cambio de compromiso y luego enviarlos al servidor:

git commit -m 'corrections in GoT.txt story' -a

Y enviamos los cambios:
 

git push origin master

Supongo que esto es suficiente para que un nuevo usuario comience con Git en sus propios servidores. Si está buscando algunas herramientas GUI para administrar cambios en máquinas locales, puede usar herramientas GUI como QGit o GitK para Linux.

Git

Usando GitLab

Esta era una solución de línea de comando pura para el propietario del proyecto y el colaborador. Ciertamente no es tan fácil como usar GitHub. Desafortunadamente, mientras GitHub es el servicio de alojamiento de código más grande del mundo; su propio software no está disponible para que otros lo usen. No es de código abierto, por lo que no puede tomar el código fuente y compilar su propio GitHub. A diferencia de WordPress o Drupal, no puedes descargar GitHub y ejecutarlo en tus propios servidores.

Como es habitual en el mundo del código abierto, las opciones no tienen fin. GitLab es un proyecto ingenioso que hace exactamente eso. Es un proyecto de código abierto que permite a los usuarios ejecutar un sistema de gestión de proyectos similar a GitHub en sus propios servidores.

Puede usar GitLab para ejecutar un servicio similar a GitHub para los miembros de su equipo o su empresa. Puede usar GitLab para trabajar en proyectos privados antes de liberarlos para contribuciones públicas.

GitLab emplea el modelo de negocio tradicional de código abierto. Tienen dos productos: software libre de código abierto, que los usuarios pueden instalar en sus propios servidores, y un servicio alojado similar a GitHub.

La versión descargable tiene dos ediciones: la edición comunitaria gratuita y la edición empresarial paga. La edición empresarial se basa en la edición de comunidad pero viene con características adicionales dirigidas a clientes empresariales. Es más o menos similar a lo que ofrecen WordPress.org o Wordpress.com.

La edición de comunidad es altamente escalable y puede admitir 25,000 usuarios en un solo servidor o clúster. Algunas de las características de GitLab incluyen: administración de repositorios Git, revisiones de códigos, seguimiento de problemas, fuentes de actividad y wikis. Viene con GitLab CI para una integración y entrega continuas.

Muchos proveedores de VPS como Digital Ocean ofrecen gotitas de GitLab para los usuarios. Si desea ejecutarlo en su propio servidor, puede instalarlo manualmente. GitLab ofrece un paquete Omnibus para diferentes sistemas operativos. Antes de instalar GitLab, es posible que desee configurar un servidor de correo electrónico SMTP para que GitLab pueda enviar correos electrónicos cuando sea necesario. Ellos recomiendan Postfix. Por lo tanto, instale Postfix en su servidor:

sudo apt-get install postfix

Durante la instalación de Postfix, le hará algunas preguntas; no te los saltes Si te lo perdiste, siempre puedes volver a configurarlo usando este comando:

sudo dpkg-reconfigure postfix

Cuando ejecuta este comando, seleccione "Sitio de Internet" y proporcione el ID de correo electrónico para el dominio que utilizará Gitlab.

Use la pestaña y cree un nombre de usuario para postfix. La página siguiente le pedirá que proporcione un destino para el correo.

En el resto de los pasos, use las opciones predeterminadas. Una vez que Postfix está instalado y configurado, sigamos para instalar GitLab.

Descargue los paquetes usando wget.

wget https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.9.4-omnibus.1-1_amd64.deb

Luego instala el paquete:

sudo dpkg -i gitlab_7.9.4-omnibus.1-1_amd64.deb

Ahora es el momento de configurar e iniciar GitLabs.

sudo gitlab-ctl reconfigure

Ahora necesita configurar el nombre de dominio en el archivo de configuración para que pueda acceder a GitLab. Abre el archivo.

nano /etc/gitlab/gitlab.rb

En este archivo edite el 'external_url' y proporcione el dominio del servidor. Guarde el archivo y luego abra el sitio recientemente creado de GitLab desde un navegador web.

Git

Por defecto, crea 'root' como administrador del sistema y usa '5iveL! Fe' como la contraseña. Inicie sesión en el sitio de GitLab y luego cambie la contraseña.

Git

Una vez que se cambia la contraseña, inicie sesión en el sitio y comience a administrar su proyecto.

Git

GitLab está repleto de características y opciones. Tomaré prestadas líneas populares de la película, The Matrix: "Desafortunadamente, a nadie se le puede decir lo que todo GitLab puede hacer. Tienes que intentarlo por ti mismo".

Fuente: https://www.linux.com/learn/how-run-your-own-git-server

Si te ha gustado el artículo, síguenos en FacebookTwitterunete a nuestra charla en Riotúnete a IRC o únete a Telegram y no olvides compartirnos en las redes sociales. También puede hacernos una donación o comprar nuestros servicios.

 

 

Etiquetas

Acerca del autor

Fredy Yesid Avila - Ingeniero de Sistemas, CEH - ECSA,