Hur man installerar GitBucket på Ubuntu 16.04

Den här guiden täcker den grundläggande installationen och inställningen av GitBucket för en Vultr-instans som kör Ubuntu 16.04 och förutsätter att du kör kommandon som non-rootanvändare.

Förutsättningar

  • En Vultr-serverinstans med minst 1 GB RAM (mindre instanser kan fungera, om än långsamt).
  • openjdk-8-jre Krävs, äldre versioner fungerar inte.
  • wget Används för att ladda ner GitBucket-paketet.
  • nginx Valfritt, ger en omvänd proxy till GitBucket
  • systemd Hanterar att starta och stoppa GitBucket-processen

Installationsförutsättningar

GitBucket kräver Java 8 eller senare för att vara installerat på din server. Om du inte redan har installerat Java 8, uppdatera först dina lokala paketlistor.

sudo apt update

Installera sedan Java 8 runtime-paketet.

sudo apt install openjdk-8-jre

Installerar GitBucket

Skapa en oprivilegierad användare

Vi måste skapa en oprivilegierad användare för att köra GitBucket innan vi går vidare. Att köra GitBucket under en oprivilegierad användare begränsar vår installation från att skriva utanför sin egen datakatalog, vilket stärker säkerheten för din server. Kör följande kommando för att skapa en systemanvändare som heter gitbucket.

sudo adduser --system gitbucket

Eftersom vi skapade en systemanvändare är standardskalet /bin/false, och vi kommer att kastas tillbaka till vårt nuvarande skal om vi inte tillhandahåller ett ytterligare skalargument när vi kör su. Logga in på den nyskapade användaren.

sudo su - gitbucket -s /bin/bash

Din skals prompt bör ändras och du kommer att loggas in på den nya systemanvändaren.

Ladda ner/uppdatera GitBucket

Navigera till GitBuckets releasesida och leta reda på den senaste tillgängliga versionen. Kopiera URL:en för gitbucket.warpaketet, verifiera att du är i den nya användarens hemkatalog och ladda ner den med wget.

cd ~/
wget https://github.com/gitbucket/gitbucket/releases/download/4.18.0/gitbucket.war

Du måste upprepa detta steg varje gång du vill uppdatera GitBucket-paketet.

Initial GitBucket-konfiguration

När paketet har laddats ner måste vi starta GitBucket manuellt för att utföra en initial konfiguration.

java -jar gitbucket.war --port 8080

Om porten 8080redan tas av en annan process kan du ändra porten som GitBucket lyssnar på nu. Den här guiden förutsätter genomgående att GitBucket lyssnar på port8080 .

Detta kommer att starta GitBucket på din servers offentliga nätverksgränssnitt och lyssna på den angivna porten. Du bör se, efter en stund, följande meddelande.

INFO:oejs.Server:main: Started @15891ms

Om du använder Vultrs brandvägg måste du öppna porten GitBucket lyssnar på, eftersom Vultrs brandvägg fungerar som en vitlista och avvisar trafik för att tillåta portar om inget annat anges.

Din GitBucket-installation bör nu vara online och tillgänglig från internet. Använd en webbläsare, anslut till din servers offentliga adress (var noga med att ange porten GitBucket körs på, (dvs. http://203.0.113.0:8080eller http://example.com:8080), och du kommer att landa på GitBuckets hemsida.

Lösenordet för standardadministratörskontot måste dock ändras. För att göra det, logga in på administratörskontot via Sign inknappen uppe till höger i webbgränssnittet. Standardinloggningen för administratörskontot är rootför användarnamnet och sedan rootigen för lösenordet. När du har loggat in kommer knappen att ersättas med en profilikon och rullgardinsmeny. Expandera rullgardinsmenyn och välj Account Settingsoch ange sedan ett nytt, säkrare lösenord i guiden för kontoinställningar.

Efter att du har uppdaterat standardadministratörskontots autentiseringsuppgifter och verifierat att GitBucket startar i denna minimala konfiguration, avbryt Java-processen med " CTRL+C" och stäng det aktuella skalet med exit.

Skapar Systemd-tjänsten

För närvarande kan vi bara köra GitBucket genom att komma åt vår server via SSH och starta processen från ett skal manuellt. Lyckligtvis kommer Ubuntu färdigförpackat med Systemd, vilket gör att vi kan skapa en tjänst med vilken GitBucket kommer att autostartas och underhållas av systemet.

Använd nano, skapa en ny enhetsfil i /etc/systemd/systemkatalogen.

sudo nano /etc/systemd/system/gitbucket.service

Kopiera sedan följande innehåll till filen.

[Unit]
Description=GitBucket
After=network.target
[Service]
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080
ExecStop=/bin/kill -SIGINT $MAINPID
Type=simple
User=gitbucket
[Install]
WantedBy=multi-user.target

Denna enhetsfil definierar grundläggande uppstarts- och avstängningsbeteende för GitBucket och kör tjänsten under vår oprivilegierade systemanvändare på det lokala nätverksgränssnittet.

Om du har ändrat portnumret som GitBucket kommer att lyssna på, ändra --portargumentet för ExecStartkommandot.

Spara (" CTRL+O") den nya enhetsfilen och avsluta sedan editorn (" CTRL+X"). Du måste ladda om Systemd för att den nya enhetsfilen ska upptäckas.

sudo systemctl daemon-reload

Efter att Systemd har laddats om, kontrollera att den nya enheten upptäcktes och laddades.

sudo systemctl status gitbucket

Du bör se följande utdata.

gitbucket.service - GitBucket
   Loaded: loaded (/etc/systemd/system/gitbucket.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

Slutligen, låt den nya enheten starta automatiskt när din server startar och starta sedan tjänsten för första gången.

sudo systemctl enable gitbucket
sudo systemctl start gitbucket

När tjänsten har startat kommer du att kunna komma åt GitBucket från din webbläsare med hjälp av IP-adressen och portnumret igen.

Konfigurera Nginx omvänd proxy

Även om man kan exponera GitBucket direkt genom porten 8080, kan du förbättra prestanda och konfigurera funktioner som HTTP/2, TLS-kryptering och cachningsregler genom att exponera GitBucket genom Nginx.

Initial Nginx-installation

Om du inte redan har installerat Nginx, uppdatera dina paketlistor.

sudo apt update

Installera sedan Nginx-paketet.

sudo apt install nginx

När Nginx har installerats, verifiera att du kan komma åt webbservern via din servers IP-adress utan portnumret (dvs. http://203.0.113.0eller http://example.com). Om det lyckas kommer du att se standard Nginx-målsidan för Ubuntu.

Skapa den omvända proxyn

Vi kommer att kopiera in standardwebbplatsens konfiguration /etc/nginx/sites-availablesom utgångspunkt för den omvända proxyn.

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/gitbucket

Öppna den nyskapade konfigurationsfilen med nano.

sudo nano /etc/nginx/sites-available/gitbucket

Leta upp det befintliga location /blocket på linje 43.

location / {
  # First attempt to serve request as file, then
  # as directory, then fall back to displaying a 404.
  try_files $uri $uri/ =404;
}

För närvarande kommer Nginx att försöka returnera filer som finns i /var/www/htmlvilka matchar inkommande HTTPförfrågningar. Vi måste ändra detta beteende genom att konfigurera en omvänd proxy i detta block, som skickar alla HTTP-förfrågningar som görs till vår Nginx-server till GitBucket-instansen istället. Uppdatera location /blocket så att det matchar följande.

location / {
    proxy_pass              http://localhost:8080; # The address GitBucket is listening on
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_connect_timeout   150;
    proxy_send_timeout      100;
    proxy_read_timeout      100;
    proxy_buffers           4 32k;

    client_max_body_size    512m; # Needed for large Git operations over HTTP
    client_body_buffer_size 128k;
}

Om du ändrade portnumret som GitBucket kommer att lyssna på, uppdatera proxy_passalternativet för att återspegla detta.

För att aktivera vår nya konfiguration måste du inaktivera den befintliga standardkonfigurationen i /etc/nginx/sites-enabledoch sedan symlinka vår nya konfiguration till /etc/nginx/sites-enabledgenom följande.

sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/gitbucket /etc/nginx/sites-enabled/gitbucket

När konfigurationsfilen har aktiverats, kontrollera efter eventuella syntaxfel.

sudo nginx -t

Starta sedan om Nginx-servern för att aktivera vår nya webbplatskonfiguration.

sudo systemctl restart nginx

Du bör nu kunna komma åt din GitBucket-installation på din servers offentliga adress utan portnummer.

Säkra GitBucket-processen från det offentliga internet

För närvarande lyssnar vår GitBucket-instans på vår servers offentliga nätverksgränssnitt. Detta kommer att tillåta användare att kringgå Nginx-proxyn genom att ansluta till adressen som GitBucket för närvarande lyssnar på, vilket sannolikt är oönskat. Vi måste ändra enhetsfilen vi skapade tidigare för att lösa detta. Öppna enhetsfilen med nano.

sudo nano /etc/systemd/system/gitbucket.service

Lägg --host 127.0.0.1till ExecStartkommandot, som så.

...
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080 --host 127.0.0.1
...

Detta gör att GitBucket endast accepterar anslutningar på vår servers lokala nätverksgränssnitt. Återigen, spara (" CTRL+O") filen, stäng (" CTRL+X") redigeraren, ladda om Systemd och starta om vår GitBucket-enhet.

sudo systemctl daemon-reload
sudo systemctl restart gitbucket

Om du använder Vultrs brandvägg bör du också ta bort alla portregler du lagt till för att komma åt GitBucket-servern under den första installationen.


Installera Plesk på CentOS 7

Installera Plesk på CentOS 7

Använder du ett annat system? Plesk är en egen kontrollpanel för webbhotell som tillåter användare att administrera sina personliga och/eller klienters webbplatser, databaser

Installera Cacti på Debian Jessie

Installera Cacti på Debian Jessie

Introduktion Cacti är ett övervaknings- och grafverktyg med öppen källkod som är helt baserat på RRD-data. Genom Cacti kan du övervaka nästan vilken typ av enhet som helst

Installera Lets Encrypt SSL på One-Click WordPress-appen

Installera Lets Encrypt SSL på One-Click WordPress-appen

Introduktion Lets Encrypt är en certifikatmyndighetstjänst som erbjuder gratis TLS/SSL-certifikat. Installationsprocessen förenklas av Certbot,

Hur man ställer in en Tekkit Classic-server på Ubuntu 16.10

Hur man ställer in en Tekkit Classic-server på Ubuntu 16.10

Använder du ett annat system? Vad är Tekkit Classic? Tekkit Classic är ett modpack för spelet som alla känner och älskar; Minecraft. Den innehåller några av ver

Konfigurera iRedMail på Debian Wheezy

Konfigurera iRedMail på Debian Wheezy

Använder du ett annat system? Den här handledningen visar dig hur du installerar groupware iRedMail på en ny installation av Debian Wheezy. Du bör använda en serve

Hur man installerar och konfigurerar PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

Hur man installerar och konfigurerar PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

PHP och relaterade paket är de mest använda komponenterna när du distribuerar en webbserver. I den här artikeln kommer vi att lära oss hur du ställer in PHP 7.0 eller PHP 7.1 o

Hur man installerar Squid Proxy på CentOS

Hur man installerar Squid Proxy på CentOS

Squid är ett populärt, gratis Linux-program som låter dig skapa en webbproxy för vidarebefordran. I den här guiden ser du hur du installerar Squid på CentOS för att förvandla dig

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Inledning Lighttpd är en apachegaffel som syftar till att vara mycket mindre resurskrävande. Den är lätt, därav namnet, och är ganska enkel att använda. Installera

Tre gratis serverkontrollpaneler (snabbinstallation)

Tre gratis serverkontrollpaneler (snabbinstallation)

1. Virtualmin/Webmin Virtualmin är en kraftfull och flexibel kontrollpanel för webbhotell för Linux- och UNIX-system baserad på den välkända Open Source-webbasen

Konfigurera en Yii-applikation på Ubuntu 14.04

Konfigurera en Yii-applikation på Ubuntu 14.04

Yii är ett PHP-ramverk som låter dig utveckla applikationer snabbare och enklare. Att installera Yii på Ubuntu är enkelt, eftersom du kommer att lära dig exakt

Använder skärmen på Ubuntu 14.04

Använder skärmen på Ubuntu 14.04

Screen är ett program som tillåter flera terminalsessioner inom ett fönster. Detta låter dig simulera flera terminalfönster där det ma

Konfigurera din egen DNS-server på Debian/Ubuntu

Konfigurera din egen DNS-server på Debian/Ubuntu

Denna handledning förklarar hur man ställer in en DNS-server med Bind9 på Debian eller Ubuntu. Genomgående i artikeln, byt ut ditt-domännamn.com i enlighet med detta. Vid th

Använda Logrotate för att hantera loggfiler

Använda Logrotate för att hantera loggfiler

Inledning Logrotate är ett Linux-verktyg som förenklar administrationen av loggfiler. Den körs vanligtvis en gång om dagen via ett cron-jobb och hanterar loggbasen

Konfigurera statiskt nätverk och IPv6 på CentOS 7

Konfigurera statiskt nätverk och IPv6 på CentOS 7

VULTR har nyligen gjort ändringar på deras sida, och allt borde nu fungera bra direkt när NetworkManager är aktiverat. Om du vill inaktivera

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Icinga2 är ett kraftfullt övervakningssystem, och när det används i en master-klient-modell kan det ersätta behovet av NRPE-baserade övervakningskontroller. Master-klienten

Konfigurera Red5 Media Server på Ubuntu 16.04

Konfigurera Red5 Media Server på Ubuntu 16.04

Använder du ett annat system? Red5 är en mediaserver med öppen källkod implementerad i Java som låter dig köra Flash fleranvändarapplikationer som livestreamin

Kompilera och installera Nginx med PageSpeed-modulen på Debian 8

Kompilera och installera Nginx med PageSpeed-modulen på Debian 8

I den här artikeln kommer vi att se hur man kompilerar och installerar Nginx mainline från de officiella källorna för Nginx med PageSpeed-modulen, som låter dig t

Hur man installerar Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Hur man installerar Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Hur man installerar Vanilla Forum på Ubuntu 16.04

Hur man installerar Vanilla Forum på Ubuntu 16.04

Använder du ett annat system? Vanilla forum är en open source forumapplikation skriven i PHP. Det är en helt anpassningsbar, enkel att använda och stöder externa

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer