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:
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:
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:
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:
Enhorabuena! has instalado y configurado con éxito GitBucket en el servidor Ubuntu 18.04 LTS. No dudes en preguntarme si tienes alguna duda.