Sådan installeres GitBucket på Ubuntu 16.04

Denne vejledning dækker den grundlæggende installation og opsætning af GitBucket for en Vultr-instans, der kører Ubuntu 16.04, og antager, at du udfører kommandoer som non-rootbruger.

Forudsætninger

  • En Vultr-serverforekomst med mindst 1 GB RAM (mindre forekomster kan fungere, omend langsomt).
  • openjdk-8-jre Påkrævet, ældre versioner virker ikke.
  • wget Bruges til at downloade GitBucket-pakken.
  • nginx Valgfrit, giver en omvendt proxy til GitBucket
  • systemd Styrer at starte og stoppe GitBucket-processen

Installationsforudsætninger

GitBucket kræver, at Java 8 eller nyere er installeret på din server. Hvis du ikke allerede har installeret Java 8, skal du først opdatere dine lokale pakkelister.

sudo apt update

Installer derefter Java 8 runtime-pakken.

sudo apt install openjdk-8-jre

Installation af GitBucket

Oprettelse af en uprivilegeret bruger

Vi bliver nødt til at oprette en uprivilegeret bruger for at køre GitBucket, før vi går videre. At køre GitBucket under en uprivilegeret bruger begrænser vores installation fra at skrive uden for dets eget databibliotek, hvilket styrker sikkerheden på din server. Kør følgende kommando for at oprette en systembruger kaldet gitbucket.

sudo adduser --system gitbucket

Fordi vi oprettede en systembruger , er standard shell /bin/false, og vi vil blive kastet tilbage til vores nuværende shell, medmindre vi giver et ekstra shell-argument, når vi kører su. Log ind på den nyoprettede bruger.

sudo su - gitbucket -s /bin/bash

Din shell-prompt skulle ændre sig, og du vil blive logget på den nye systembruger.

Downloader/opdaterer GitBucket

Naviger til GitBucket-udgivelsessiden og find den seneste tilgængelige version. Kopier URL'en til gitbucket.warpakken, bekræft, at du er i den nye brugers hjemmemappe, og download den med wget.

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

Du bliver nødt til at gentage dette trin hver gang du ønsker at opdatere GitBucket-pakken.

Indledende GitBucket-konfiguration

Når pakken er blevet downloadet, bliver vi nødt til at starte GitBucket manuelt for at udføre en indledende konfiguration.

java -jar gitbucket.war --port 8080

Hvis porten 8080allerede er taget af en anden proces, kan du ændre den port, GitBucket vil lytte på nu. Denne guide antager hele vejen igennem, at GitBucket lytter på port8080 .

Dette vil starte GitBucket på din servers offentlige netværksgrænseflade og lytte ved den angivne port. Du bør efter et par øjeblikke se følgende besked.

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

Hvis du bruger Vultrs firewall , skal du åbne den port, GitBucket lytter til, da Vultrs firewall fungerer som en hvidliste, der afviser trafik for at tillade porte, medmindre andet er angivet.

Din GitBucket-installation skulle nu være online og tilgængelig fra internettet. Brug en webbrowser til at oprette forbindelse til din servers offentlige adresse (vær sikker på at angive den port, GitBucket kører på, (dvs. http://203.0.113.0:8080eller http://example.com:8080), og du vil lande på GitBuckets hjemmeside.

Adgangskoden til standardadministratorkontoen skal dog ændres. For at gøre det skal du logge ind på administratorkontoen via Sign inknappen øverst til højre på webgrænsefladen. Standardlogin for administratorkontoen er rootfor brugernavnet og derefter rootigen for adgangskoden. Når du er logget ind, vil knappen blive erstattet med et profilikon og en rullemenu. Udvid rullemenuen og vælg Account Settings, og indstil derefter en ny, mere sikker adgangskode i guiden til kontoindstillinger.

Efter at du har opdateret standardadministratorkontoens legitimationsoplysninger og bekræftet, at GitBucket starter i denne minimale konfiguration, skal du dræbe Java-processen med " CTRL+C" og lukke den aktuelle shell med exit.

Oprettelse af Systemd-tjenesten

I øjeblikket kan vi kun køre GitBucket ved at få adgang til vores server gennem SSH og starte processen fra en shell manuelt. Heldigvis kommer Ubuntu færdigpakket med Systemd, hvilket giver os mulighed for at skabe en tjeneste, som GitBucket automatisk vil blive startet og vedligeholdt af systemet.

Brug nano, opret en ny enhedsfil i /etc/systemd/systemmappen.

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

Kopier derefter følgende indhold ind 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 enhedsfil definerer grundlæggende opstarts- og nedlukningsadfærd for GitBucket og kører tjenesten under vores uprivilegerede systembruger på den lokale netværksgrænseflade.

Hvis du har ændret portnummeret, som GitBucket vil lytte til, skal du ændre --portargumentet for ExecStartkommandoen.

Gem (" CTRL+O") den nye enhedsfil og afslut derefter editoren (" CTRL+X"). Du skal genindlæse Systemd for at den nye enhedsfil kan opdages.

sudo systemctl daemon-reload

Efter at Systemd er genindlæst, skal du kontrollere, at den nye enhed blev opdaget og indlæst.

sudo systemctl status gitbucket

Du bør se følgende output.

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

Til sidst skal du aktivere den nye enhed til automatisk at starte, når din server starter, og start derefter tjenesten for første gang.

sudo systemctl enable gitbucket
sudo systemctl start gitbucket

Når tjenesten er startet, vil du kunne få adgang til GitBucket fra din browser ved hjælp af IP-adressen og portnummeret igen.

Konfiguration af Nginx omvendt proxy

Mens man kan eksponere GitBucket direkte gennem port 8080, kan du forbedre ydeevnen og konfigurere funktioner såsom HTTP/2, TLS-kryptering og caching-regler ved at eksponere GitBucket gennem Nginx.

Indledende Nginx-opsætning

Hvis du ikke allerede har installeret Nginx, skal du opdatere dine pakkelister.

sudo apt update

Installer derefter Nginx-pakken.

sudo apt install nginx

Når Nginx er blevet installeret, skal du kontrollere, at du er i stand til at få adgang til webserveren via din servers IP-adresse uden portnummeret (dvs. http://203.0.113.0eller http://example.com). Hvis det lykkes, vil du se standard Nginx-destinationssiden for Ubuntu.

Oprettelse af omvendt proxy

Vi kopierer standardwebstedets konfiguration ind /etc/nginx/sites-availablesom udgangspunkt for den omvendte proxy.

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

Åbn den nyoprettede konfigurationsfil med nano.

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

Find den eksisterende location /blok 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;
}

I øjeblikket vil Nginx forsøge at returnere filer, der er placeret i, /var/www/htmlsom matcher indgående HTTPanmodninger. Vi bliver nødt til at ændre denne adfærd ved at konfigurere en omvendt proxy i denne blok, som sender alle HTTP-anmodninger til vores Nginx-server til GitBucket-instansen i stedet. Opdater location /blokken, så den matcher 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 har ændret portnummeret, som GitBucket lytter til, skal du opdatere proxy_passmuligheden for at afspejle dette.

For at aktivere vores nye konfiguration skal du deaktivere den eksisterende standardkonfiguration i /etc/nginx/sites-enabled, og derefter symlinke vores nye konfiguration til /etc/nginx/sites-enabledgennem følgende.

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

Når konfigurationsfilen er blevet aktiveret, skal du kontrollere for eventuelle syntaksfejl.

sudo nginx -t

Genstart derefter Nginx-serveren for at aktivere vores nye webstedskonfiguration.

sudo systemctl restart nginx

Du skulle nu kunne få adgang til din GitBucket-installation på din servers offentlige adresse uden et portnummer.

Sikring af GitBucket-processen fra det offentlige internet

I øjeblikket lytter vores GitBucket-instans på vores servers offentlige netværksgrænseflade. Dette vil tillade brugere at omgå Nginx-proxyen ved at oprette forbindelse til den adresse, som GitBucket i øjeblikket lytter til, hvilket sandsynligvis er uønsket. Vi bliver nødt til at ændre enhedsfilen, vi oprettede tidligere, for at løse dette. Åbn enhedsfilen med nano.

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

Føj --host 127.0.0.1til ExecStartkommandoen, sådan.

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

Dette vil få GitBucket til kun at acceptere forbindelser på vores servers lokale netværksinterface. Endnu en gang, gem (" CTRL+O") filen, luk (" CTRL+X") editoren, genindlæs Systemd, og genstart vores GitBucket-enhed.

sudo systemctl daemon-reload
sudo systemctl restart gitbucket

Hvis du bruger Vultr's Firewall, bør du også fjerne alle portregler, du tilføjede for at få adgang til GitBucket-serveren under den indledende opsætning.


Opsæt Cacti på Debian Jessie

Opsæt Cacti på Debian Jessie

Introduktion Cacti er et open source overvågnings- og grafværktøj, som er fuldt baseret på RRD-data. Gennem Cacti kan du overvåge næsten enhver type enhed

Installer Lets Encrypt SSL på One-Click WordPress App

Installer Lets Encrypt SSL på One-Click WordPress App

Introduktion Lets Encrypt er en certifikatmyndighedstjeneste, der tilbyder gratis TLS/SSL-certifikater. Installationsprocessen forenkles af Certbot,

Konfigurer iRedMail på Debian Wheezy

Konfigurer iRedMail på Debian Wheezy

Bruger du et andet system? Denne vejledning viser dig, hvordan du installerer groupware iRedMail på en ny installation af Debian Wheezy. Du bør bruge en serve

Sådan installeres Lighttpd (LLMP Stack) på CentOS 6

Sådan installeres Lighttpd (LLMP Stack) på CentOS 6

Introduktion Lighttpd er en forgrening af Apache, der sigter mod at være meget mindre ressourcekrævende. Den er let, deraf navnet, og den er ret enkel at bruge. Installer

Tre gratis serverkontrolpaneler (hurtig installation)

Tre gratis serverkontrolpaneler (hurtig installation)

1. Virtualmin/Webmin Virtualmin er et kraftfuldt og fleksibelt webhotel kontrolpanel til Linux og UNIX systemer baseret på den velkendte Open Source web-base

Opsætning af en Yii-applikation på Ubuntu 14.04

Opsætning af en Yii-applikation på Ubuntu 14.04

Yii er en PHP-ramme, der giver dig mulighed for at udvikle applikationer hurtigere og nemmere. Installation af Yii på Ubuntu er ligetil, da du vil lære nøjagtigt

Brug af skærm på Ubuntu 14.04

Brug af skærm på Ubuntu 14.04

Screen er et program, der tillader flere terminalsessioner inden for et vindue. Dette giver dig mulighed for at simulere flere terminalvinduer, hvor det ma

Brug af Logrotate til at administrere logfiler

Brug af Logrotate til at administrere logfiler

Introduktion Logrotate er et Linux-værktøj, der forenkler administrationen af ​​logfiler. Det kører typisk en gang om dagen via et cron-job og administrerer logbasen

Konfiguration af statisk netværk og IPv6 på CentOS 7

Konfiguration af statisk netværk og IPv6 på CentOS 7

VULTR har for nylig foretaget ændringer i deres ende, og alt skulle nu fungere fint ud af boksen med NetworkManager aktiveret. Skulle du ønske at deaktivere

Ændring af Icinga2 til at bruge Master/Client Model på CentOS 6 eller CentOS 7

Ændring af Icinga2 til at bruge Master/Client Model på CentOS 6 eller CentOS 7

Icinga2 er et kraftfuldt overvågningssystem, og når det bruges i en master-klient-model, kan det erstatte behovet for NRPE-baserede overvågningstjek. Mester-klienten

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

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

I denne artikel vil vi se, hvordan du kompilerer og installerer Nginx mainline fra de officielle kilder til Nginx med PageSpeed-modulet, som giver dig mulighed for at

Sådan installeres Apache Cassandra 3.11.x på CentOS 7

Sådan installeres Apache Cassandra 3.11.x på CentOS 7

Bruger du et andet system? Apache Cassandra er et gratis og open source NoSQL-databasestyringssystem, der er designet til at give skalerbarhed, høj

Sådan installeres Kanboard på Ubuntu 18.04 LTS

Sådan installeres Kanboard på Ubuntu 18.04 LTS

Bruger du et andet system? Introduktion Kanboard er et gratis og open source projektstyringssoftwareprogram, som er designet til at lette og visualisere

Sådan installeres Kanboard på Debian 9

Sådan installeres Kanboard på Debian 9

Bruger du et andet system? Introduktion Kanboard er et gratis og open source projektstyringssoftwareprogram, som er designet til at lette og visualisere

Sådan installeres Gitea på Debian 9

Sådan installeres Gitea på Debian 9

Bruger du et andet system? Gitea er et alternativt open source, selvhostet versionskontrolsystem drevet af Git. Gitea er skrevet på Golang og er

Sådan installeres Gitea på Ubuntu 18.04

Sådan installeres Gitea på Ubuntu 18.04

Bruger du et andet system? Gitea er et alternativt open source, selv-hostet versionskontrolsystem drevet af git. Gitea er skrevet på Golang og er

Sådan installeres Thelia 2.3 på Debian 9

Sådan installeres Thelia 2.3 på Debian 9

Bruger du et andet system? Thelia er et open source-værktøj til at skabe e-business-websteder og administrere onlineindhold skrevet i PHP. Thelia kildekode i

Patching the Dirty Cow Exploit på CentOS

Patching the Dirty Cow Exploit på CentOS

Hvad er Dirty Cow (CVE-2016-5195)? Dirty Cow-sårbarheden udnyttes gennem, hvordan Linux behandler kode. Det giver en uprivilegeret bruger mulighed for at gai

Konfigurer en ikke-rootbruger med Sudo Access på Ubuntu

Konfigurer en ikke-rootbruger med Sudo Access på Ubuntu

Det kan være farligt at have kun én bruger, som er root. Så lad os ordne det. Vultr giver os friheden til at gøre som vi vil med vores brugere og vores servere

Installer Adminer på Debian/Ubuntu

Installer Adminer på Debian/Ubuntu

Adminer er et letvægtsalternativ til phpMyAdmin. Til sammenligning er dens samlede pakkestørrelse 400KB mod 4,2 MB phpMyAdmin. I modsætning til phpMyAdmin, som

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 lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere