Parakushtet
Parakushtet e instalimit
Instalimi i GitBucket
Konfigurimi i përfaqësuesit të kundërt Nginx
Ky udhëzues mbulon instalimin dhe konfigurimin bazë të GitBucket për një shembull Vultr që ekzekuton Ubuntu 16.04 dhe supozon se po ekzekutoni komanda si non-rootpërdorues.
Parakushtet
- Një shembull i serverit Vultr me të paktën 1 GB RAM (instancat më të vogla mund të funksionojnë, megjithëse ngadalë).
openjdk-8-jre Kërkohet, versionet e vjetra nuk do të funksionojnë.
wget Përdoret për të shkarkuar paketën GitBucket.
nginx Opsionale, ofron një përfaqësues të kundërt të GitBucket
systemd Menaxhon fillimin dhe ndalimin e procesit GitBucket
Parakushtet e instalimit
GitBucket kërkon që Java 8 ose më e reja të instalohet në serverin tuaj. Nëse nuk e keni instaluar tashmë Java 8, së pari përditësoni listat e paketave tuaja lokale.
sudo apt update
Pastaj instaloni paketën Java 8 Runtime.
sudo apt install openjdk-8-jre
Instalimi i GitBucket
Krijimi i një përdoruesi të paprivilegjuar
Do të na duhet të krijojmë një përdorues të paprivilegjuar për të ekzekutuar GitBucket përpara se të shkojmë më tej. Ekzekutimi i GitBucket nën një përdorues të paprivilegjuar e kufizon instalimin tonë nga shkrimi jashtë drejtorisë së tij të të dhënave, duke forcuar sigurinë e serverit tuaj. Ekzekutoni komandën e mëposhtme për të krijuar një përdorues të sistemit të quajtur gitbucket.
sudo adduser --system gitbucket
Për shkak se ne krijuam një përdorues të sistemit , guaska e parazgjedhur është /bin/false, dhe ne do të kthehemi në guaskën tonë aktuale nëse nuk japim një argument shtesë të guaskës gjatë ekzekutimit su. Hyni te përdoruesi i sapokrijuar.
sudo su - gitbucket -s /bin/bash
Kërkesa e guaskës suaj duhet të ndryshojë dhe ju do të identifikoheni në përdoruesin e ri të sistemit.
Shkarkimi/Përditësimi i GitBucket
Navigoni në faqen e lëshimeve të GitBucket dhe gjeni versionin më të fundit të disponueshëm. Kopjoni URL-në për gitbucket.warpaketën, verifikoni se jeni në drejtorinë kryesore të përdoruesit të ri dhe shkarkoni atë me wget.
cd ~/
wget https://github.com/gitbucket/gitbucket/releases/download/4.18.0/gitbucket.war
Ju do të duhet ta përsërisni këtë hap sa herë që dëshironi të përditësoni paketën GitBucket.
Konfigurimi fillestar i GitBucket
Pasi të jetë shkarkuar paketa, do të na duhet të nisim manualisht GitBucket për të kryer disa konfigurime fillestare.
java -jar gitbucket.war --port 8080
Nëse porti 8080është marrë tashmë nga një proces tjetër, mund të ndryshoni portën që GitBucket do të dëgjojë tani. Ky udhëzues supozon se GitBucket po dëgjon në port8080 .
Kjo do të nisë GitBucket në ndërfaqen e rrjetit publik të serverit tuaj, duke dëgjuar në portin e specifikuar. Ju duhet të shihni, pas disa çastesh, mesazhin e mëposhtëm.
INFO:oejs.Server:main: Started @15891ms
Nëse jeni duke përdorur murin e zjarrit të Vultr , do t'ju duhet të hapni portin që GitBucket po dëgjon, pasi muri i zjarrit i Vultr funksionon si një listë e bardhë, duke refuzuar trafikun për të lejuar portet, përveç nëse specifikohet ndryshe.
Instalimi juaj i GitBucket tani duhet të jetë në linjë dhe i aksesueshëm nga interneti. Duke përdorur një shfletues ueb, lidheni me adresën publike të serverit tuaj (duke qenë i sigurt që të specifikoni portin që GitBucket po funksionon, (dmth. http://203.0.113.0:8080ose http://example.com:8080) dhe do të zbarkoni në faqen kryesore të GitBucket.
Megjithatë, fjalëkalimi i llogarisë së parazgjedhur të administratorit duhet të ndryshohet. Për ta bërë këtë, identifikohuni në llogarinë e administratorit përmes Sign inbutonit në pjesën e sipërme të djathtë të ndërfaqes së internetit. Hyrja e paracaktuar për llogarinë e administratorit është rootpër emrin e përdoruesit dhe më pas rootpërsëri për fjalëkalimin. Pasi të regjistroheni, butoni do të zëvendësohet me një ikonë të profilit dhe do të lëshohet. Zgjero listën rënëse dhe zgjidhni Account Settings, më pas vendosni një fjalëkalim të ri, më të sigurt në magjistarin e cilësimeve të llogarisë.
Pasi të keni përditësuar kredencialet e llogarisë së parazgjedhur të administratorit dhe të keni verifikuar që GitBucket fillon në këtë konfigurim minimal, CTRL+Cmbyllni procesin Java me " " dhe mbyllni guaskën aktuale me exit.
Krijimi i shërbimit Systemd
Aktualisht, ne mund të ekzekutojmë GitBucket vetëm duke hyrë në serverin tonë përmes SSH dhe duke e filluar procesin nga një predhë manualisht. Për fat të mirë, Ubuntu vjen i parapaketuar me Systemd, duke na lejuar të krijojmë një shërbim me të cilin GitBucket do të fillojë automatikisht dhe do të mirëmbahet nga sistemi.
Duke përdorur nano, krijoni një skedar të ri njësi në /etc/systemd/systemdrejtori.
sudo nano /etc/systemd/system/gitbucket.service
Pastaj, kopjoni përmbajtjen e mëposhtme në skedar.
[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
Ky skedar njësie përcakton sjelljen bazë të nisjes dhe mbylljes për GitBucket dhe e drejton shërbimin nën përdoruesin tonë të paprivilegjuar të sistemit në ndërfaqen e rrjetit vetëm lokal.
Nëse keni ndryshuar numrin e portit që GitBucket do të dëgjojë, ndryshoni --portargumentin për ExecStartkomandën.
Ruani (" CTRL+O") skedarin e ri të njësisë dhe më pas dilni nga redaktori (" CTRL+X"). Ju do të duhet të rifreskoni Systemd që skedari i ri i njësisë të zbulohet.
sudo systemctl daemon-reload
Pasi Systemd të jetë ringarkuar, verifikoni që njësia e re është zbuluar dhe ngarkuar.
sudo systemctl status gitbucket
Ju duhet të shihni daljen e mëposhtme.
gitbucket.service - GitBucket
Loaded: loaded (/etc/systemd/system/gitbucket.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Së fundi, aktivizoni që njësia e re të fillojë automatikisht kur serveri juaj të fillojë dhe më pas të nisë shërbimin për herë të parë.
sudo systemctl enable gitbucket
sudo systemctl start gitbucket
Pasi të ketë filluar shërbimi, do të keni mundësi të hyni në GitBucket nga shfletuesi juaj duke përdorur adresën IP dhe numrin e portit përsëri.
Konfigurimi i përfaqësuesit të kundërt Nginx
Ndërsa dikush mund të ekspozojë GitBucket direkt përmes portit 8080, ju mund të përmirësoni performancën dhe të konfiguroni veçori të tilla si HTTP/2, enkriptimi TLS dhe rregullat e ruajtjes së memorjes duke ekspozuar GitBucket përmes Nginx.
Konfigurimi fillestar i Nginx
Nëse nuk e keni instaluar tashmë Nginx, përditësoni listat e paketave tuaja.
sudo apt update
Më pas instaloni paketën Nginx.
sudo apt install nginx
Pasi të jetë instaluar Nginx, verifikoni se jeni në gjendje të hyni në serverin e uebit përmes adresës IP të serverit tuaj pa numrin e portit (dmth. http://203.0.113.0ose http://example.com). Nëse ka sukses, do të shihni faqen e paracaktuar të uljes Nginx për Ubuntu.
Krijimi i përfaqësuesit të kundërt
Ne do të kopjojmë konfigurimin e paracaktuar të faqes /etc/nginx/sites-availablesi një pikënisje për përfaqësuesin e kundërt.
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/gitbucket
Hapni skedarin e konfigurimit të krijuar rishtazi me nano.
sudo nano /etc/nginx/sites-available/gitbucket
Gjeni location /bllokun ekzistues në linjën 43.
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
Aktualisht, Nginx do të përpiqet të kthejë skedarët e vendosur në të /var/www/htmlcilët përputhen me HTTPkërkesat hyrëse . Do të na duhet ta ndryshojmë këtë sjellje duke konfiguruar një përfaqësues të kundërt në këtë bllok, i cili do t'i dërgojë të gjitha kërkesat HTTP të bëra në serverin tonë Nginx në shembullin GitBucket. Përditëso location /bllokun që të përputhet me sa vijon.
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;
}
Nëse keni ndryshuar numrin e portit që do të dëgjojë GitBucket, përditësoni proxy_passopsionin për ta pasqyruar këtë.
Për të aktivizuar konfigurimin tonë të ri, do t'ju duhet të çaktivizoni konfigurimin ekzistues të paracaktuar në /etc/nginx/sites-enabled, më pas simlidhni konfigurimin tonë të ri /etc/nginx/sites-enabledme sa vijon.
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/gitbucket /etc/nginx/sites-enabled/gitbucket
Pasi të jetë aktivizuar skedari i konfigurimit, kontrolloni për ndonjë gabim sintaksor.
sudo nginx -t
Më pas, rinisni serverin Nginx për të aktivizuar konfigurimin e ri të faqes sonë.
sudo systemctl restart nginx
Tani duhet të jeni në gjendje të aksesoni instalimin tuaj GitBucket në adresën publike të serverit tuaj pa një numër porti.
Sigurimi i procesit GitBucket nga interneti publik
Aktualisht, shembulli ynë GitBucket po dëgjon në ndërfaqen e rrjetit publik të serverit tonë . Kjo do t'i lejojë përdoruesit të anashkalojnë përfaqësuesin Nginx duke u lidhur me adresën që GitBucket po dëgjon aktualisht, gjë që ka të ngjarë të jetë e padëshiruar. Do të na duhet të modifikojmë skedarin e njësisë që krijuam më parë për ta zgjidhur këtë. Hapni skedarin e njësisë me nano.
sudo nano /etc/systemd/system/gitbucket.service
Append --host 127.0.0.1të ExecStartkomandës, si kështu.
...
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080 --host 127.0.0.1
...
Kjo do të bëjë që GitBucket të pranojë vetëm lidhje në ndërfaqen e rrjetit lokal të serverit tonë. Edhe një herë, ruajeni (" CTRL+O") skedarin, mbyllni (" CTRL+X") redaktorin, ringarkoni Systemd dhe rinisni njësinë tonë GitBucket.
sudo systemctl daemon-reload
sudo systemctl restart gitbucket
Nëse jeni duke përdorur Firewall-in e Vultr, duhet të hiqni gjithashtu çdo rregull porti që keni shtuar për të hyrë në serverin GitBucket gjatë konfigurimit fillestar.