GitBucket te installeren met Nginx op Ubuntu

GitBucket is een gratis en open-source Git platform aangedreven door Scala met Github API compatibiliteit. Het is eenvoudig, lichtgewicht en een alternatief voor Github of BitBucket. Het komt met een reeks functies waaronder ondersteuning voor GitLFS, issues, pull request, meldingen, plug-in systeem, publieke en private Git repositories. Het kan gemakkelijk geïntegreerd worden met LDAP voor het beheer van accounts en groepen.

In deze tutorial leren we hoe je GitBucket installeert en configureert op Ubuntu 18.04 server.

Vereisten

  • Een verse server met Ubuntu 18.04.
  • Een root wachtwoord is geconfigureerd op je instantie.

Aan de slag

Voordat je begint, update je je systeem met de laatste stabiele versie. Je kunt dat doen met het volgende commando:

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

Eenmaal bijgewerkt, herstart je je server om alle configuratiewijzigingen toe te passen.

Java installeren

GitBucket vereist dat Java 8 of nieuwer op je server is geïnstalleerd. Je zult dus Java op je server moeten installeren.

Om Java te installeren voer je het volgende commando uit:

apt-get install default-jdk -y

Zodra de Java geïnstalleerd is, kun je de versie van Java controleren met het volgende commando:

java -version

Je zou de volgende uitvoer moeten zien:

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)

Als je klaar bent, kun je doorgaan naar de volgende stap.

GitBucket installeren

Voordat je GitBucket installeert, moet je een ongeprivilegieerde gebruiker aanmaken om GitBucket te draaien.

Voer het volgende commando uit om een systeemgebruiker genaamd gitbucket aan te maken.

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

Download vervolgens GitBucket van de Git repository met het volgende commando:

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

Zodra het downloaden voltooid is, maak je een map voor GitBucket binnen /opt

mkdir /opt/gitbucket

Verplaats vervolgens het gedownloade bestand in de map gitbucket:

mv gitbucket.war /opt/gitbucket

Geef vervolgens de juiste toestemming aan de gitbucket directory met het volgende commando:

chown -R gitbucket:gitbucket /opt/gitbucket

Als je klaar bent, kun je doorgaan met de volgende stap.

Systemd Service bestand maken voor GitBucket

Vervolgens moet je een Systemd service bestand voor GitBucket maken om de GitBucket service te beheren. Je kunt het aanmaken met het volgende commando:

nano /etc/systemd/system/gitbucket.service

Voeg de volgende regels toe:

# 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

Sla het bestand op en sluit het. Herlaad dan de Systemd met het volgende commando:

systemctl daemon-reload

Start vervolgens gitbucket service en schakel het in om bij het opstarten te starten met het volgende commando:

systemctl enable gitbucket
 systemctl start gitbucket

Je kunt nu de status van gitbucket controleren met het volgende commando:

systemctl status gitbucket

Je zou de volgende uitvoer moeten zien:

? 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)

Als je klaar bent, kun je doorgaan naar de volgende stap.

Database verbinding voor GitBucket configureren

GitBucket wordt geleverd met een ingebouwde H2 database. Om de databaseverbinding te configureren open je het bestand database.conf met je favoriete tekstverwerker:

nano /opt/gitbucket/database.conf

Voeg de volgende regels toe:

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

Als je klaar bent, kun je doorgaan naar de volgende stap.

Nginx configureren als omgekeerde proxy

GitBucket draait standaard op poort 8080. Dus, je zult Nginx moeten configureren als een reverse proxy om de prestaties te verbeteren en andere eigenschappen zoals, HTTP/2 en TLS encryptie in te schakelen.

Installeer daarvoor eerst Nginx met het volgende commando:

apt-get install nginx -y

Maak vervolgens een reverse proxy voor GitBucket door het volgende bestand aan te maken:

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

Voeg de volgende regels toe:

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/;
  }
}

Sla het bestand op en sluit het. Schakel dan Nginx virtuele host in met het volgende commando:

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

Controleer vervolgens de Nginx op syntaxfouten en herstart de Nginx service met het volgende commando:

nginx -t

Je zou de volgende uitvoer moeten zien:

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

Als je klaar bent, kun je doorgaan met de volgende stap.

Toegang tot GitBucket Webinterface

GitBucket is nu geïnstalleerd en geconfigureerd. Open je webbrowser en typ de URL http://your-domain.com. Je wordt doorgestuurd naar de volgende pagina:

GitBucket interface

Klik nu op de knop Aanmelden. Je wordt doorgestuurd naar de inlogpagina zoals hieronder getoond:

Inloggen op GitBucket

Geef nu de standaard gebruikersnaam en wachtwoord op als root / root en klik op de Inloggen knop. Op de volgende pagina zou je het GitBucket dashboard moeten zien:

GitBucket Repository lijst

Ga vervolgens naar de Accountinstellingen om het standaard root-wachtwoord te veranderen zoals op de volgende pagina:

GitBucket Account Instellingen

Gefeliciteerd! Je hebt GitBucket met succes geïnstalleerd en geconfigureerd op Ubuntu 18.04 LTS server. Stel me gerust als je vragen hebt.