Hvordan installere GitBucket på Ubuntu 16.04

Denne guiden dekker den grunnleggende installasjonen og oppsettet av GitBucket for en Vultr-forekomst som kjører Ubuntu 16.04, og forutsetter at du utfører kommandoer som non-rootbruker.

Forutsetninger

  • En Vultr-serverforekomst med minst 1 GB RAM (mindre forekomster kan fungere, om enn sakte).
  • openjdk-8-jre Påkrevd, eldre versjoner vil ikke fungere.
  • wget Brukes til å laste ned GitBucket-pakken.
  • nginx Valgfritt, gir en omvendt proxy til GitBucket
  • systemd Klarer å starte og stoppe GitBucket-prosessen

Installasjonsforutsetninger

GitBucket krever Java 8 eller nyere for å være installert på serveren din. Hvis du ikke allerede har installert Java 8, må du først oppdatere de lokale pakkelistene dine.

sudo apt update

Installer deretter Java 8 runtime-pakken.

sudo apt install openjdk-8-jre

Installerer GitBucket

Opprette en uprivilegert bruker

Vi må opprette en uprivilegert bruker for å kjøre GitBucket før vi går videre. Å kjøre GitBucket under en uprivilegert bruker begrenser installasjonen vår fra å skrive utenfor sin egen datakatalog, noe som styrker sikkerheten til serveren din. Kjør følgende kommando for å opprette en systembruker kalt gitbucket.

sudo adduser --system gitbucket

Fordi vi opprettet en systembruker , er standardskallet /bin/false, og vi vil bli kastet tilbake til vårt nåværende skall med mindre vi gir et ekstra skallargument når vi kjører su. Logg på den nyopprettede brukeren.

sudo su - gitbucket -s /bin/bash

Skallets melding bør endres, og du vil bli logget på den nye systembrukeren.

Laster ned/oppdaterer GitBucket

Naviger til GitBucket-utgivelsessiden og finn den siste tilgjengelige versjonen. Kopier URL-en til gitbucket.warpakken, bekreft at du er i den nye brukerens hjemmekatalog, og last den ned med wget.

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

Du må gjenta dette trinnet hver gang du ønsker å oppdatere GitBucket-pakken.

Innledende GitBucket-konfigurasjon

Når pakken er lastet ned, må vi starte GitBucket manuelt for å utføre en innledende konfigurasjon.

java -jar gitbucket.war --port 8080

Hvis porten 8080allerede er tatt av en annen prosess, kan du endre porten GitBucket vil lytte på nå. Denne guiden forutsetter gjennomgående at GitBucket lytter på port8080 .

Dette vil starte GitBucket på serverens offentlige nettverksgrensesnitt, og lytte på den angitte porten. Du bør se, etter noen få øyeblikk, følgende melding.

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

Hvis du bruker Vultrs brannmur , må du åpne porten GitBucket lytter på, siden Vultrs brannmur fungerer som en hvitliste, og avviser trafikk for å tillate porter med mindre annet er spesifisert.

GitBucket-installasjonen din skal nå være online og tilgjengelig fra internett. Bruk en nettleser, koble til serverens offentlige adresse (pass på å spesifisere porten GitBucket kjører på, (dvs. http://203.0.113.0:8080eller http://example.com:8080), og du vil lande på GitBuckets hjemmeside.

Passordet til standard administratorkontoen må imidlertid endres. For å gjøre det, logg inn på administratorkontoen via Sign inknappen øverst til høyre i nettgrensesnittet. Standard pålogging for administratorkontoen er rootfor brukernavnet, og deretter rootigjen for passordet. Når du er logget inn, vil knappen bli erstattet med et profilikon og en rullegardin. Utvid rullegardinmenyen og velg Account Settings. Angi deretter et nytt, sikrere passord i veiviseren for kontoinnstillinger.

Etter at du har oppdatert påloggingsinformasjonen til standard administratorkontoen og bekreftet at GitBucket starter i denne minimale konfigurasjonen, drep Java-prosessen med " CTRL+C" og lukk gjeldende skall med exit.

Opprette Systemd-tjenesten

Foreløpig kan vi bare kjøre GitBucket ved å få tilgang til serveren vår gjennom SSH og starte prosessen fra et skall manuelt. Heldigvis kommer Ubuntu ferdigpakket med Systemd, slik at vi kan lage en tjeneste som GitBucket vil bli automatisk startet og vedlikeholdt av systemet med.

Bruk nano, opprett en ny enhetsfil i /etc/systemd/systemkatalogen.

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

Kopier deretter følgende innhold inn i 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

Denne enhetsfilen definerer grunnleggende oppstarts- og avslutningsatferd for GitBucket, og kjører tjenesten under vår uprivilegerte systembruker på det lokale nettverksgrensesnittet.

Hvis du har endret portnummeret GitBucket vil lytte på, endre --portargumentet for ExecStartkommandoen.

Lagre (" CTRL+O") den nye enhetsfilen og gå ut av redigeringsprogrammet (" CTRL+X"). Du må laste Systemd på nytt for at den nye enhetsfilen skal bli oppdaget.

sudo systemctl daemon-reload

Etter at Systemd har lastet inn på nytt, kontroller at den nye enheten ble oppdaget og lastet.

sudo systemctl status gitbucket

Du bør se følgende utgang.

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

Til slutt, aktiver den nye enheten til å starte automatisk når serveren starter, og start deretter tjenesten for første gang.

sudo systemctl enable gitbucket
sudo systemctl start gitbucket

Når tjenesten har startet, vil du kunne få tilgang til GitBucket fra nettleseren din ved å bruke IP-adressen og portnummeret igjen.

Konfigurere Nginx omvendt proxy

Mens man kan eksponere GitBucket direkte gjennom port 8080, kan du forbedre ytelsen og konfigurere funksjoner som HTTP/2, TLS-kryptering og caching-regler ved å eksponere GitBucket gjennom Nginx.

Innledende Nginx-oppsett

Hvis du ikke allerede har installert Nginx, oppdater pakkelistene dine.

sudo apt update

Installer deretter Nginx-pakken.

sudo apt install nginx

Når Nginx er installert, kontroller at du har tilgang til webserveren via serverens IP-adresse uten portnummeret (dvs. http://203.0.113.0eller http://example.com). Hvis det lykkes, vil du se standard Nginx-landingsside for Ubuntu.

Opprette omvendt proxy

Vi kopierer standardkonfigurasjonen for nettstedet inn /etc/nginx/sites-availablesom et utgangspunkt for omvendt proxy.

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

Åpne den nyopprettede konfigurasjonsfilen med nano.

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

Finn den eksisterende location /blokken 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;
}

For øyeblikket vil Nginx forsøke å returnere filer /var/www/htmlsom samsvarer med innkommende HTTPforespørsler. Vi må endre denne oppførselen ved å konfigurere en omvendt proxy i denne blokken, som vil sende alle HTTP-forespørsler til vår Nginx-server til GitBucket-forekomsten i stedet. Oppdater location /blokken slik at den samsvarer med følgende.

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

Hvis du endret portnummeret som GitBucket vil lytte på, oppdater proxy_passalternativet for å gjenspeile dette.

For å aktivere vår nye konfigurasjon, må du deaktivere den eksisterende standardkonfigurasjonen i /etc/nginx/sites-enabled, og deretter symlinke vår nye konfigurasjon til /etc/nginx/sites-enabledgjennom følgende.

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

Når konfigurasjonsfilen er aktivert, se etter eventuelle syntaksfeil.

sudo nginx -t

Start deretter Nginx-serveren på nytt for å aktivere vår nye sidekonfigurasjon.

sudo systemctl restart nginx

Du skal nå kunne få tilgang til GitBucket-installasjonen på serverens offentlige adresse uten portnummer.

Sikring av GitBucket-prosessen fra det offentlige internett

For øyeblikket lytter vår GitBucket-instans på serverens offentlige nettverksgrensesnitt. Dette vil tillate brukere å omgå Nginx-proxyen ved å koble til adressen som GitBucket lytter på, noe som sannsynligvis er uønsket. Vi må endre enhetsfilen vi opprettet tidligere for å løse dette. Åpne enhetsfilen med nano.

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

Legg --host 127.0.0.1til ExecStartkommandoen, som så.

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

Dette vil føre til at GitBucket kun godtar tilkoblinger på serverens lokale nettverksgrensesnitt. Igjen, lagre (" CTRL+O") filen, lukk (" CTRL+X") editoren, last inn Systemd på nytt og start GitBucket-enheten på nytt.

sudo systemctl daemon-reload
sudo systemctl restart gitbucket

Hvis du bruker Vultrs brannmur, bør du også fjerne portregler du la til for å få tilgang til GitBucket-serveren under det første oppsettet.


Leave a Comment

Hvordan sette opp en Tekkit Classic Server på Ubuntu 16.10

Hvordan sette opp en Tekkit Classic Server på Ubuntu 16.10

Bruker du et annet system? Hva er Tekkit Classic? Tekkit Classic er en modpack for spillet alle kjenner og elsker; Minecraft. Den inneholder noe av ver

Opprette en Jekyll-blogg på Ubuntu 16.04

Opprette en Jekyll-blogg på Ubuntu 16.04

Bruker du et annet system? Jekyll er et flott alternativ til WordPress for blogging eller deling av innhold. Det krever ingen databaser, og det er veldig enkelt, jeg

Hvordan installere og konfigurere PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

Hvordan installere og konfigurere PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

PHP og relaterte pakker er de mest brukte komponentene når du distribuerer en webserver. I denne artikkelen vil vi lære hvordan du setter opp PHP 7.0 eller PHP 7.1 o

Slik installerer du Squid Proxy på CentOS

Slik installerer du Squid Proxy på CentOS

Squid er et populært, gratis Linux-program som lar deg lage en webproxy for videresending. I denne veiledningen vil du se hvordan du installerer Squid på CentOS for å gjøre deg om

Slik installerer du Lighttpd (LLMP Stack) på CentOS 6

Slik installerer du Lighttpd (LLMP Stack) på CentOS 6

Introduksjon Lighttpd er en apachegaffel som har som mål å være mye mindre ressurskrevende. Den er lett, derav navnet, og er ganske enkel å bruke. Installer

Sette opp en Yii-applikasjon på Ubuntu 14.04

Sette opp en Yii-applikasjon på Ubuntu 14.04

Yii er et PHP-rammeverk som lar deg utvikle applikasjoner raskere og enklere. Det er enkelt å installere Yii på Ubuntu, som du vil lære nøyaktig

Sett opp din egen DNS-server på Debian/Ubuntu

Sett opp din egen DNS-server på Debian/Ubuntu

Denne opplæringen forklarer hvordan du setter opp en DNS-server ved å bruke Bind9 på Debian eller Ubuntu. Bytt ut ditt-domenenavn.com gjennom hele artikkelen. På th

Konfigurering av statisk nettverk og IPv6 på CentOS 7

Konfigurering av statisk nettverk og IPv6 på CentOS 7

VULTR har nylig gjort endringer på sin side, og alt skal nå fungere bra ut av boksen med NetworkManager aktivert. Skulle du ønske å deaktivere

Endring av Icinga2 for å bruke hoved-/klientmodell på CentOS 6 eller CentOS 7

Endring av Icinga2 for å bruke hoved-/klientmodell på CentOS 6 eller CentOS 7

Icinga2 er et kraftig overvåkingssystem, og når det brukes i en master-klient-modell, kan det erstatte behovet for NRPE-baserte overvåkingskontroller. Mester-klienten

Sett opp Red5 Media Server på Ubuntu 16.04

Sett opp Red5 Media Server på Ubuntu 16.04

Bruker du et annet system? Red5 er en åpen kildekode medieserver implementert i Java som lar deg kjøre Flash flerbrukerapplikasjoner som live streamin

Kompiler og installer Nginx med PageSpeed-modulen på Debian 8

Kompiler og installer Nginx med PageSpeed-modulen på Debian 8

I denne artikkelen vil vi se hvordan du kompilerer og installerer Nginx mainline fra de offisielle kildene til Nginx med PageSpeed-modulen, som lar deg t

Hvordan installere Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Hvordan installere Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy

Hvordan installere Vanilla Forum på Ubuntu 16.04

Hvordan installere Vanilla Forum på Ubuntu 16.04

Bruker du et annet system? Vanilla forum er en åpen kildekode-forumapplikasjon skrevet i PHP. Det er en fullt tilpassbar, enkel å bruke og støtter ekstern

Hvordan installere Kanboard på Ubuntu 18.04 LTS

Hvordan installere Kanboard på Ubuntu 18.04 LTS

Bruker du et annet system? Introduksjon Kanboard er et gratis og åpen kildekodeprogram for prosjektledelse som er designet for å forenkle og visualisere

Hvordan installere Kanboard på Debian 9

Hvordan installere Kanboard på Debian 9

Bruker du et annet system? Introduksjon Kanboard er et gratis og åpen kildekodeprogram for prosjektledelse som er designet for å forenkle og visualisere

Hvordan installere Gitea på Debian 9

Hvordan installere Gitea på Debian 9

Bruker du et annet system? Gitea er et alternativt åpen kildekode, selvdrevet versjonskontrollsystem drevet av Git. Gitea er skrevet på Golang og er

Hvordan installere Gitea på Ubuntu 18.04

Hvordan installere Gitea på Ubuntu 18.04

Bruker du et annet system? Gitea er et alternativt, selvdrevet versjonskontrollsystem med åpen kildekode drevet av git. Gitea er skrevet på Golang og er

Hvordan installere Thelia 2.3 på Debian 9

Hvordan installere Thelia 2.3 på Debian 9

Bruker du et annet system? Thelia er et åpen kildekodeverktøy for å lage e-business-nettsteder og administrere nettinnhold skrevet i PHP. Thelia kildekode i

Hvordan installere MODX Revolution på en Ubuntu 16.04 LAMP VPS

Hvordan installere MODX Revolution på en Ubuntu 16.04 LAMP VPS

Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, gratis og åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer