GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat GitBucket s Nginx na Ubuntu 20.04 LTS

GitBucket je open-source webová platforma Git provozovaná společností Scala. Poskytuje funkce uživatelského rozhraní podobné Githubu, jako je hostování úložiště Git prostřednictvím HTTP a SSH, problémy, wiki, prohlížeč úložiště a požadavky na stahování. Dodává se s bohatou sadou funkcí. Některé z nich jsou uvedeny níže:

  • Intuitivní uživatelské rozhraní
  • Podpora pro GitLFS
  • Podpora veřejných a soukromých úložišť Git
  • Časová osa aktivity a e-mailová upozornění
  • Kompatibilita API s GitHub
  • Správa účtů a skupin

V tomto tutoriálu vysvětlíme, jak nainstalovat GitBucket s Nginx na Ubuntu 20.04.

Předpoklady

  • Server se systémem Ubuntu 20.04 s 2 GB paměti RAM.
  • Platný název domény odkazovaný na váš server.
  • Na vašem serveru je nakonfigurováno heslo uživatele root.

Instalovat Javu

GitBucket je založen na Javě, takže jej budete muset nainstalovat do svého systému. Můžete jej nainstalovat pomocí následujícího příkazu:

apt-get install default-jdk -y

Po instalaci ověřte verzi Java pomocí následujícího příkazu:

java -version

Měli byste získat následující výstup:

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)

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Instalace a konfigurace GitBucket

Než začnete, je dobré vytvořit samostatného uživatele a skupinu pro spuštění GitBucket. Novou skupinu a uživatele s názvem gitbucket můžete vytvořit pomocí následujícího příkazu:

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

Dále vytvořte nový adresář pro GitBucket pomocí následujícího příkazu:

mkdir /opt/gitbucket

Dále si stáhněte nejnovější verzi GitBucket v adresáři GitBucket:

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

Dále změňte vlastnictví adresáře GitBucket:

chown -R gitbucket:gitbucket /opt/gitbucket

GitBucket je dodáván s vestavěnou databází H2. Nový konfigurační soubor databáze můžete vytvořit pomocí následujícího příkazu:

nano /opt/gitbucket/database.conf

Přidejte následující řádky:

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

Po dokončení uložte a zavřete soubor.

Vytvořit soubor Systemd Service pro GitBucket

Dále budete muset vytvořit soubor služby systemd pro správu služby GitBucket. Můžete jej vytvořit pomocí následujícího příkazu:

nano /etc/systemd/system/gitbucket.service

Přidejte následující řádky:

# 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

Po dokončení uložte a zavřete soubor. Poté znovu načtěte démona systemd pomocí následujícího příkazu:

systemctl daemon-reload

Dále spusťte službu GitBucket a povolte její spuštění po restartu systému pomocí následujícího příkazu:

systemctl start gitbucket
systemctl enable gitbucket

Dále ověřte stav služby GitBucket pomocí následujícího příkazu:

systemctl status gitbucket

Měli byste získat následující výstup:

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

V tuto chvíli GitBucket běží a naslouchá na portu 8080.

Konfigurovat Nginx jako reverzní proxy

Ve výchozím nastavení běží GitBucket na portu 8080. Je tedy dobré nakonfigurovat Nginx jako reverzní proxy pro GitBucket.

Nejprve nainstalujte webový server Nginx pomocí následujícího příkazu:

apt-get install nginx -y

Dále vytvořte konfigurační soubor virtuálního hostitele Nginx pro GitBucket:

nano /etc/nginx/sites-available/gitbucket

Přidejte následující řádky:

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

Uložte a zavřete soubor. Poté vytvořte symbolický odkaz na adresář s povolenými weby:

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

Dále zkontrolujte Nginx, zda neobsahuje nějakou chybu syntaxe pomocí následujícího příkazu:

nginx -t

Měli byste získat následující výstup:

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

Nakonec restartujte službu Nginx a implementujte změny:

systemctl restart nginx

Bezpečný GitBucket pomocí Let's Encrypt

Dále budete muset nainstalovat klienta Certbot, abyste zabezpečili svůj GitBucket pomocí Let's Encrypt SSL.

Nejprve přidejte úložiště Certbot pomocí následujícího příkazu:

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

Dále aktualizujte úložiště a nainstalujte klienta Certbot pomocí následujícího příkazu:

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

Dále spusťte následující příkaz a stáhněte a nainstalujte Let's Encrypt SSL pro váš web:

certbot --nginx -d gitbucket.linuxbuz.com

Budete požádáni, abyste poskytli svůj e-mail a přijali podmínky služby:

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

Dále vyberte, zda chcete přesměrovat provoz HTTP na 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

Zadejte 2 a stiskněte Enter pro dokončení instalace.

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

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Přístup k GitBucket

Nyní otevřete webový prohlížeč a zadejte adresu URL https://gitbucket.linuxbuz.com. Budete přesměrováni na následující stránku:

Klikněte na Podepsat v knoflík. Měli byste vidět přihlašovací stránku GitBucket:

Zadejte výchozí uživatelské jméno GitBucket jako root a heslo jako root a klikněte na Podepsat v knoflík. Na následující stránce byste měli vidět řídicí panel GitBucket:

Dále klikněte na Účet Nastavení v pravém horním rohu změnit výchozí heslo uživatele root:

Zadejte nové bezpečné heslo a klikněte na Uložit tlačítko pro aktualizaci hesla uživatele root.

Závěr

Gratulujeme! úspěšně jste nainstalovali a zabezpečili GitBucket s Nginx jako reverzní proxy na Ubuntu 20.04. Nyní můžete hostovat své vlastní úložiště Git pomocí GitBucket.


Ubuntu
  1. Jak nainstalovat Seafile s Nginx na Ubuntu 20.04 LTS

  2. Jak nainstalovat Nginx pomocí Google PageSpeed ​​na Ubuntu 20.04

  3. Jak nasadit Modsecurity s Nginx na Ubuntu 20.04 LTS

  1. Jak nainstalovat MediaWiki s Nginx na Ubuntu 16.04

  2. Jak nainstalovat Seafile s Nginx na Ubuntu 18.04 LTS

  3. Jak nainstalovat Magento s Nginx na Ubuntu 15.10

  1. Jak nainstalovat Mailpile s Nginx na Ubuntu 15.10

  2. Jak nainstalovat Redmine 3 s Nginx na Ubuntu 15.10

  3. Jak nainstalovat Piwik s Nginx na Ubuntu 15.10