GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer GitBucket avec Nginx sur Ubuntu 20.04 LTS

GitBucket est une plate-forme Web Git open source optimisée par Scala. Il fournit des fonctionnalités d'interface utilisateur de type Github telles que l'hébergement du référentiel Git via HTTP et SSH, les problèmes, le wiki, la visionneuse de référentiel et les demandes d'extraction. Il est livré avec un riche ensemble de fonctionnalités. Certains d'entre eux sont répertoriés ci-dessous :

  • Interface utilisateur intuitive
  • Compatibilité avec GitLFS
  • Compatible avec les dépôts Git publics et privés
  • Chronologie des activités et notifications par e-mail
  • Compatibilité de l'API avec GitHub
  • Gestion des comptes et des groupes

Dans ce tutoriel, nous expliquerons comment installer GitBucket avec Nginx sur Ubuntu 20.04.

Prérequis

  • Un serveur exécutant Ubuntu 20.04 avec 2 Go de RAM.
  • Un nom de domaine valide pointé vers votre serveur.
  • Un mot de passe root est configuré sur votre serveur.

Installer Java

GitBucket est basé sur Java, vous devrez donc l'installer sur votre système. Vous pouvez l'installer avec la commande suivante :

apt-get install default-jdk -y

Une fois installé, vérifiez la version de Java à l'aide de la commande suivante :

java -version

Vous devriez obtenir le résultat suivant :

openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Installer et configurer GitBucket

Avant de commencer, c'est une bonne idée de créer un utilisateur et un groupe distincts pour exécuter GitBucket. Vous pouvez créer un nouveau groupe et un utilisateur nommé gitbucket avec la commande suivante :

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

Ensuite, créez un nouveau répertoire pour GitBucket avec la commande suivante :

mkdir /opt/gitbucket

Ensuite, téléchargez la dernière version du GitBucket dans le répertoire GitBucket :

cd /opt/gitbucket
wget https://github.com/gitbucket/gitbucket/releases/download/4.33.0/gitbucket.war

Ensuite, changez le propriétaire du répertoire GitBucket :

chown -R gitbucket:gitbucket /opt/gitbucket

GitBucket est livré avec une base de données H2 intégrée. Vous pouvez créer un nouveau fichier de configuration de base de données avec la commande suivante :

nano /opt/gitbucket/database.conf

Ajoutez les lignes suivantes :

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

Enregistrez et fermez le fichier lorsque vous avez terminé.

Créer un fichier de service Systemd pour GitBucket

Ensuite, vous devrez créer un fichier de service systemd pour gérer le service GitBucket. Vous pouvez le créer à l'aide de la commande suivante :

nano /etc/systemd/system/gitbucket.service

Ajoutez les lignes suivantes :

# 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

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, rechargez le démon systemd à l'aide de la commande suivante :

systemctl daemon-reload

Ensuite, démarrez le service GitBucket et activez-le après le redémarrage du système avec la commande suivante :

systemctl start gitbucket
systemctl enable gitbucket

Ensuite, vérifiez l'état du service GitBucket avec la commande suivante :

systemctl status gitbucket

Vous devriez obtenir le résultat suivant :

? gitbucket.service - Manage Java service
     Loaded: loaded (/etc/systemd/system/gitbucket.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-05-14 02:27:13 UTC; 10s ago
   Main PID: 93029 (java)
      Tasks: 36 (limit: 2282)
     Memory: 324.9M
     CGroup: /system.slice/gitbucket.service
             ??93029 /usr/bin/java -Xms128m -Xmx256m -jar gitbucket.war

May 14 02:27:19 ubuntu2004 java[93029]: 2020-05-14 02:27:19.868:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
May 14 02:27:19 ubuntu2004 java[93029]: 2020-05-14 02:27:19.868:INFO:oejs.session:main: No SessionScavenger set, using defaults
May 14 02:27:19 ubuntu2004 java[93029]: 2020-05-14 02:27:19.875:INFO:oejs.session:main: node0 Scavenging every 600000ms
May 14 02:27:20 ubuntu2004 java[93029]: 02:27:20.261 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
May 14 02:27:20 ubuntu2004 java[93029]: 02:27:20.691 [main] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
May 14 02:27:20 ubuntu2004 java[93029]: 02:27:20.697 [main] WARN  slick.util.AsyncExecutor - Having maxConnection > maxThreads can result in d>
May 14 02:27:20 ubuntu2004 java[93029]: 02:27:20.721 [main] INFO  g.core.servlet.InitializeListener - Check version
May 14 02:27:20 ubuntu2004 java[93029]: 02:27:20.721 [main] INFO  g.core.servlet.InitializeListener - Start schema update
May 14 02:27:22 ubuntu2004 java[93029]: 02:27:22.156 [main] INFO  l.servicelocator.ServiceLocator - Can not use class liquibase.parser.core.ya>
May 14 02:27:22 ubuntu2004 java[93029]: 02:27:22.161 [main] INFO  l.servicelocator.ServiceLocator - Can not use class liquibase.parser.core.js>

À ce stade, GitBucket s'exécute et écoute sur le port 8080.

Configurer Nginx en tant que proxy inverse

Par défaut, GitBucket s'exécute sur le port 8080. C'est donc une bonne idée de configurer Nginx en tant que proxy inverse pour GitBucket.

Tout d'abord, installez le serveur Web Nginx avec la commande suivante :

apt-get install nginx -y

Ensuite, créez un fichier de configuration d'hôte virtuel Nginx pour GitBucket :

nano /etc/nginx/sites-available/gitbucket

Ajoutez les lignes suivantes :

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

server {
  listen          80;
  server_name     gitbucket.linuxbuz.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/;
  }
}

Enregistrez et fermez le fichier. Ensuite, créez un lien symbolique vers le répertoire sites-enabled :

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

Ensuite, vérifiez le Nginx pour toute erreur de syntaxe avec la commande suivante :

nginx -t

Vous devriez obtenir le résultat suivant :

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

Enfin, redémarrez le service Nginx pour mettre en œuvre les modifications :

systemctl restart nginx

Sécurisez GitBucket avec Let's Encrypt

Ensuite, vous devrez installer le client Certbot pour sécuriser votre GitBucket avec Let's Encrypt SSL.

Commencez par ajouter le référentiel Certbot à l'aide de la commande suivante :

add-apt-repository ppa:ahasenack/certbot-tlssni01-1875471

Ensuite, mettez à jour le référentiel et installez le client Certbot avec la commande suivante :

apt-get update -y
apt-get install certbot python3-certbot-nginx -y

Ensuite, exécutez la commande suivante pour télécharger et installer le SSL Let's Encrypt pour votre site Web :

certbot --nginx -d gitbucket.linuxbuz.com

Il vous sera demandé de fournir votre adresse e-mail et d'accepter les conditions d'utilisation :

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for gitbucket.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/gitbucket

Ensuite, sélectionnez si vous souhaitez ou non rediriger le trafic HTTP vers HTTPS :

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Tapez 2 et appuyez sur Entrée pour terminer l'installation.

Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/gitbucket

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://gitbucket.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=gitbucket.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/gitbucket.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/gitbucket.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-08-12. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Accéder au GitBucket

Maintenant, ouvrez votre navigateur Web et tapez l'URL https://gitbucket.linuxbuz.com. Vous serez redirigé vers la page suivante :

Cliquez sur le Signer dans bouton. Vous devriez voir la page de connexion GitBucket :

Indiquez le nom d'utilisateur par défaut de GitBucket en tant que root et le mot de passe en tant que root et cliquez sur Signer dans bouton. Vous devriez voir le tableau de bord GitBucket sur la page suivante :

Ensuite, cliquez sur le Compte Paramètres dans le coin supérieur droit pour changer le mot de passe root par défaut :

Indiquez un nouveau mot de passe sécurisé et cliquez sur Enregistrer bouton pour mettre à jour le mot de passe root.

Conclusion

Toutes nos félicitations! vous avez installé et sécurisé avec succès GitBucket avec Nginx en tant que proxy inverse sur Ubuntu 20.04. Vous pouvez désormais héberger votre propre référentiel Git à l'aide du GitBucket.


Ubuntu
  1. Comment installer Seafile avec Nginx sur Ubuntu 20.04 LTS

  2. Comment installer MediaWiki avec Nginx sur Ubuntu 16.04

  3. Comment installer Seafile avec Nginx sur Ubuntu 18.04 LTS

  4. Comment installer Nginx avec Google PageSpeed ​​sur Ubuntu 20.04

  5. Comment déployer Modsecurity avec Nginx sur Ubuntu 20.04 LTS

Comment installer osTicket avec Nginx sur Ubuntu 18.04 LTS

Comment installer phpMyAdmin avec Nginx (LEMP) sur Ubuntu 18.04 LTS

Comment installer Nginx avec le module Ngx_Pagespeed sur Ubuntu 16.04 LTS

Comment installer Joomla avec Nginx sur Ubuntu 18.04 LTS

Comment installer phpMyAdmin avec Nginx sur Ubuntu 18.04 LTS

Comment installer phpMyAdmin avec Nginx sur Ubuntu 20.04 LTS