Forutsetninger
Installasjonsforutsetninger
Installerer GitBucket
Konfigurere Nginx omvendt proxy
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.