Instalación y configuración Gitlab y Apache

LOGOSMANO
Standard

Hola a todos, espero se encuentren muy bien y que hayan disfrutado las pasadas fiestas.

Estábamos pendientes con la instalación y configuración de Gitlab y Apache, en este post retomaremos el tema e instalaremos Gitlab en un servidor para poder usarlo desde donde estemos. ¿Que necesitamos? en este caso yo utilice un equipo con Ubuntu 14.04 en limpio y solo le instale como web server, apache.

Para instalar apache utilizamos el siguiente comando en terminal:

sudo apt-get install apache2

Después, habilitaremos los modos de proxy_http y rewrite en nuestro apache. Esto lo hacemos para poder configurar un virtualhost con proxy en nuestro archivo de configuración de apache.

sudo a2enmod proxy_http
sudo service apache2 restart
sudo a2enmod rewrite
sudo service apache2 restart

Una vez que habilitamos estos modos, podremos crear nuestro virtual host con proxy para redireccionar nuestra petición a Gitlab. Ahora procederemos a instalar gitlab:

sudo apt-get install curl openssh-server ca-certificates postfix
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get update
sudo apt-get install gitlab-ce

Terminada su instalación, tenemos que editar el archivo de configuración de gitlab que se encuentra en /etc/gitlab/gitlab.rb, yo lo edite de la siguiente manera:

sudo nano /etc/gitlab/gitlab.rb

Y editamos las siguientes configuraciones:

#URL externa
external_url 'example.domain.com' #aqui use un dominio de noip que di de alta.
 
#Gitlab RAILS
gitlab_rails['smtp_enable'] = true #Activamos el servicio de envio de correo por SMTP
gitlab_rails['smtp_address'] = "smtp.gmail.com" #En este caso uso el envio por medio de Gmail
gitlab_rails['smtp_port'] = 587 #Puerto SMTP de Gmail
gitlab_rails['smtp_user_name'] = "usuario@gmail.com" #Correo a utilizar
gitlab_rails['smtp_password'] = "TuPassword" #Contraseña del correo
gitlab_rails['smtp_domain'] = "gmail.com" #Dominio de gmail
gitlab_rails['smtp_authentication'] = "login" #Metodo de autenticación
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
 
#Gitlab WebServer: Con esto especificamos el web server que usaremos
web_server['username'] = 'apache'
web_server['group'] = 'apache'
 
#Gitlab Nginx
nginx['enable'] = false #Desactivamos Nginx
 
#Gitlab CI
ci_nginx['enable'] = false #Desactivamos Nginx de Gitlab CI para que no cause conflicto.

Una vez editado el archivo de configuración, ejecutamos los siguientes comandos:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

Tenemos que autorizar a aplicaciones de este tipo a hacer uso del SMTP en nuestra cuenta. En el caso de Gmail, tenemos que dirigirnos a la configuración de nuestra cuenta y habilitarlas:

habilitar
Y por ultimo crearemos nuestro VirtualHost en nuestro archivo de apache, que usualmente se encuentra en /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
  ServerName githunabsys.zapto.org #Dominio NoIp
  DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public #Gitlab Rails
 
  ProxyPreserveHost On
  AllowEncodedSlashes Off
 
  <Location />
	Order deny,allow
	Allow from all
	Require all granted
	ProxyPassReverse http://127.0.0.1:8080 #Direccion del proxy local. El puerto 8080 es el que usa Unicorn para escuchar
	ProxyPassReverse http://githunabsys.zapto.org/ #Dominio NoIp
  </Location>
 
  RewriteEngine on
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
  RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA]
</VirtualHost>

Reiniciamos apache…

sudo service apache2 restart

… Y listo! con esto debería de ser suficiente para que nuestro servidor de Gitlab pueda responder a nuestras peticiones. Solo tendremos que configurar nuestro router para que no rechace las peticiones al puerto 80 ni al puerto 22, para que los repositorios puedan ser clonados.

Por el momento les dejo la ruta, la mantendré alrededor de 1 o 2 semanas para que puedan probar y navegar por una instalación personal de Gitlab:
Hunabsys Gitlab

Fuck-Yeah-meme       fuck-yeah-aww-yeah

Si tienen alguna duda con toda confianza la comentan y la atendemos.

Saludos y hasta la próxima.

Referencias:
Instalación Gitlab
Configuración SMTP
Vhost Apache 1
Vhost Apache 2
Vhost Apache 3
Deshabilitar auto registro en pagina de inicio

PD.: Si tienes problemas al descargar Gitlab, les recomiendo instalar apt-fast para tratar de minimizar estos problemas que usualmente pasan cuando descargamos la aplicación de la forma convencional. Solo sigan las instrucciones de instalación aquí: Instalar apt-fast , y ejecutan el siguiente comando:

sudo apt-fast install gitlab-ce

2 thoughts on “Instalación y configuración Gitlab y Apache

  1. Andres

    Hola amigo, queria preguntarte si para instalar gitlab lo puedo hacer desde un subdominio de un subdominio, es decir, estoy intentando instalar en un sitio de una universidad por lo que es un subdominio: ing.universidad.edu.co; por lo tanto la pregunta es si puedo especificarle a gitlab que sea accedido mediante gitlab.ing.universidad.edu.co.. Tendre que tocar los dns?
    Gracias.

    • Cesar Otero

      Hola Andres.

      Te comento que esta configuración la hice en una instancia de EC2. Y en mi caso si me toco registrar el nombre del sitio en el que seria tu equivalente al DNS (Route 53), de lo contrario el nombre no era resuelto por mis instancias al no saber a donde dirigir la petición.

      Espero te sea de ayuda, saludos!

Leave a Reply

Your email address will not be published. Required fields are marked *