Cómo instalar GitBucket con Nginx en Ubuntu 18.04 LTS

GitBucket es una plataforma Git gratuita y de código abierto impulsada por Scala con compatibilidad con la API de Github. Es sencilla, ligera y alternativa a Github o BitBucket. Viene con un conjunto de características que incluyen, soporte para GitLFS, cuestiones, pull request, notificaciones, sistema de plug-in, repositorios Git públicos y privados. Se puede integrar fácilmente con LDAP para la gestión de cuentas y grupos.

En este tutorial, aprenderemos a instalar y configurar GitBucket en un servidor Ubuntu 18.04.

Requisitos

  • Un servidor nuevo con Ubuntu 18.04.
  • Una contraseña de root configurada en tu instancia.

Cómo empezar

Antes de empezar, actualiza tu sistema con la última versión estable. Puedes hacerlo con el siguiente comando:

apt-get update -y
apt-get upgrade -y

Una vez actualizado, reinicia tu servidor para aplicar todos los cambios de configuración.

Instalar Java

GitBucket requiere que Java 8 o más reciente esté instalado en tu servidor. Por tanto, necesitarás instalar Java en tu servidor.

Para instalar Java ejecuta el siguiente comando:

apt-get install default-jdk -y

Una vez instalado Java, puedes comprobar la versión de Java con el siguiente comando:

java -version

Deberías ver la siguiente salida:

openjdk version "10.0.2" 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2, mixed mode)

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar GitBucket

Antes de instalar GitBucket, tendrás que crear un usuario sin privilegios para ejecutar GitBucket.

Ejecuta el siguiente comando para crear un usuario del sistema llamado gitbucket.

groupadd -g 555 gitbucket
useradd -g gitbucket --no-user-group --home-dir /opt/gitbucket --no-create-home --shell /usr/sbin/nologin --system --uid 555 gitbucket

A continuación, descarga GitBucket del repositorio Git con el siguiente comando:

wget https://github.com/gitbucket/gitbucket/releases/download/4.31.2/gitbucket.war

Una vez completada la descarga, crea un directorio para GitBucket dentro de /opt

mkdir /opt/gitbucket

A continuación, mueve el archivo descargado en el directorio gitbucket:

mv gitbucket.war /opt/gitbucket

A continuación, da el permiso adecuado al directorio gitbucket con el siguiente comando

chown -R gitbucket:gitbucket /opt/gitbucket

Una vez que hayas terminado, puedes pasar al siguiente paso.

Crear el archivo de servicio Systemd para GitBucket

A continuación, tendrás que crear un archivo de servicio Systemd para GitBucket para gestionar el servicio de GitBucket. Puedes crearlo con el siguiente comando:

nano /etc/systemd/system/gitbucket.service

Añade las siguientes líneas:

# GitBucket Service
[Unit]
Description=Manage Java service

[Service]
WorkingDirectory=/opt/gitbucket
ExecStart=/usr/bin/java -Xms128m -Xmx256m -jar gitbucket.war
User=gitbucket
Group=gitbucket
Type=simple
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Guarda y cierra el archivo. A continuación, vuelve a cargar el Systemd con el siguiente comando

systemctl daemon-reload

A continuación, inicia el servicio de gitbucket y habilítalo para que se inicie al arrancar con el siguiente comando:

systemctl enable gitbucket
systemctl start gitbucket

Ahora puedes comprobar el estado de gitbucket con el siguiente comando:

systemctl status gitbucket

Deberías ver la siguiente salida:

? gitbucket.service - Manage Java service
   Loaded: loaded (/etc/systemd/system/gitbucket.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-08-09 09:43:42 UTC; 5s ago
 Main PID: 17835 (java)
    Tasks: 18 (limit: 1113)
   CGroup: /system.slice/gitbucket.service
           ??17835 /usr/bin/java -Xms128m -Xmx256m -jar gitbucket.war

Aug 09 09:43:42 ubuntu1804 systemd[1]: Started Manage Java service.
Aug 09 09:43:45 ubuntu1804 java[17835]: 2019-07-09 09:43:45.102:INFO::main: Logging initialized @2700ms to org.eclipse.jetty.util.log.StdErrLog
Aug 09 09:43:46 ubuntu1804 java[17835]: 2019-07-09 09:43:46.134:INFO:oejs.Server:main: jetty-9.4.z-SNAPSHOT; built: 2018-11-14T21:20:31.478Z; g
lines 1-11/11 (END)

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar la conexión a la base de datos para GitBucket

GitBucket viene con una base de datos H2 integrada. Para configurar la conexión a la base de datos, abre el archivo database.conf con tu editor de texto favorito:

nano /opt/gitbucket/database.conf

Añade las siguientes líneas:

db {
  url = "jdbc:h2:${DatabaseHome};MVCC=true"
  user = "sa"
  password = "sa"
}

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar Nginx como proxy inverso

Por defecto, GitBucket se ejecuta en el puerto 8080. Por lo tanto, tendrás que configurar Nginx como proxy inverso para mejorar el rendimiento y habilitar otras características como, HTTP/2 y el cifrado TLS.

Para ello, primero instala Nginx con el siguiente comando:

apt-get install nginx -y

A continuación, crea un proxy inverso para GitBucket creando el siguiente archivo:

nano /etc/nginx/sites-available/gitbucket.conf

Añade las siguientes líneas:

upstream gitbucket {
  server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
}

server {
  listen          80;
  server_name     your-domain.com;

  location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://gitbucket/;
  }
}

Guarda y cierra el archivo. A continuación, habilita el host virtual de Nginx con el siguiente comando:

ln -s /etc/nginx/sites-available/gitbucket.conf /etc/nginx/sites-enabled/

A continuación, comprueba si hay errores de sintaxis en Nginx y reinicia el servicio Nginx con el siguiente comando:

nginx -t

Deberías ver la siguiente salida:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
systemctl restart nginx

Una vez que hayas terminado, puedes pasar al siguiente paso.

Acceder a la interfaz web de GitBucket

GitBucket ya está instalado y configurado. Abre tu navegador web y escribe la URL http://your-domain.com. Serás redirigido a la siguiente página:

Interfaz de GitBucket

Ahora, haz clic en el botón Iniciar sesión. Serás redirigido a la página de inicio de sesión como se muestra a continuación:

Iniciar sesión en GitBucket

Ahora, proporciona el nombre de usuario y la contraseña por defecto como root / raíz y haz clic en el botón Iniciar sesión. Deberías ver el panel de control de GitBucket en la siguiente página:

Lista de repositorios de GitBucket

A continuación, ve a la Configuración de la cuenta para cambiar la contraseña de root por defecto, como se muestra en la siguiente página:

Configuración de la cuenta de GitBucket

Enhorabuena! has instalado y configurado con éxito GitBucket en el servidor Ubuntu 18.04 LTS. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...