Cum se instalează GitBucket pe Ubuntu 16.04

Acest ghid acoperă instalarea și configurarea de bază a GitBucket pentru o instanță Vultr care rulează Ubuntu 16.04 și presupune că executați comenzi ca non-rootutilizator.

Cerințe preliminare

  • O instanță a serverului Vultr cu cel puțin 1 GB RAM (cazuri mai mici pot funcționa, deși încet).
  • openjdk-8-jre Versiunile obligatorii, mai vechi, nu vor funcționa.
  • wget Folosit pentru a descărca pachetul GitBucket.
  • nginx Opțional, oferă un proxy invers pentru GitBucket
  • systemd Gestionează pornirea și oprirea procesului GitBucket

Instalarea condițiilor preliminare

GitBucket necesită instalarea Java 8 sau mai nouă pe serverul dvs. Dacă nu ați instalat deja Java 8, actualizați mai întâi listele locale de pachete.

sudo apt update

Apoi instalați pachetul de rulare Java 8.

sudo apt install openjdk-8-jre

Instalarea GitBucket

Crearea unui utilizator neprivitat

Va trebui să creăm un utilizator neprivitat pentru a rula GitBucket înainte de a merge mai departe. Rularea GitBucket sub un utilizator neprivitat restricționează instalarea noastră de a scrie în afara propriului său director de date, consolidând securitatea serverului dumneavoastră. Rulați următoarea comandă pentru a crea un utilizator de sistem apelat gitbucket.

sudo adduser --system gitbucket

Deoarece am creat un utilizator de sistem , shell-ul implicit este /bin/falseși vom fi relocați la shell-ul nostru actual, cu excepția cazului în care vom furniza un argument de shell suplimentar atunci când rulăm su. Conectați-vă la utilizatorul nou creat.

sudo su - gitbucket -s /bin/bash

Solicitantul dvs. de shell trebuie să se schimbe și veți fi conectat la noul utilizator de sistem.

Descărcarea / Actualizarea GitBucket

Accesați pagina de versiuni GitBucket și localizați cea mai recentă versiune disponibilă. Copiați adresa URL a gitbucket.warpachetului, verificați dacă vă aflați în directorul principal al utilizatorului și descărcați-l cu wget.

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

Va trebui să repetați acest pas de fiecare dată când doriți să actualizați pachetul GitBucket.

Configurația inițială GitBucket

După ce pachetul a fost descărcat, va trebui să pornim GitBucket manual pentru a efectua unele configurații inițiale.

java -jar gitbucket.war --port 8080

Dacă portul 8080este deja luat de un alt proces, puteți modifica portul pe care GitBucket îl va asculta acum. Acest ghid presupune că GitBucket ascultă în port8080 .

Aceasta va porni GitBucket pe interfața de rețea publică a serverului dvs., ascultând portul specificat. Ar trebui să vedeți, după câteva momente, următorul mesaj.

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

Dacă utilizați firewall-ul lui Vultr , va trebui să deschideți portul pe care GitBucket îl ascultă, întrucât firewall-ul Vultr funcționează ca o listă albă, respingând traficul pentru a permite porturile, dacă nu este specificat altfel.

Instalarea dvs. GitBucket ar trebui să fie acum online și accesibilă de pe internet. Folosind un browser web, conectați-vă la adresa publică a serverului dvs. (cu siguranță să specificați portul pe care GitBucket este în curs de funcționare, ( http://203.0.113.0:8080sau http://example.com:8080) și veți ateriza pe pagina principală a GitBucket.

Cu toate acestea, parola contului de administrator implicit trebuie modificată. Pentru a face acest lucru, conectați-vă la contul de administrator prin intermediul Sign inbutonului din partea dreaptă sus a interfeței web. Autentificarea implicită pentru contul de administrator este rootpentru numele de utilizator, apoi rootdin nou pentru parola. Odată conectat, butonul va fi înlocuit cu o pictogramă de profil și derulant. Extindeți meniul derulant și selectați Account Settings, apoi setați o parolă nouă, mai sigură, în asistentul pentru setările contului.

După ce ați actualizat datele de autentificare ale contului de administrator implicit și ați verificat că GitBucket începe în această configurație minimă, ucideți procesul Java cu " CTRL+C" și închideți shell-ul curent cu exit.

Crearea serviciului Systemd

În prezent, putem rula GitBucket doar accesând serverul nostru prin SSH și pornind procesul de la un shell manual. Din fericire, Ubuntu vine preambalat Systemd, permițându-ne să creăm un serviciu cu care GitBucket va fi pornit și întreținut automat de către sistem.

Utilizând nano, creați un nou fișier de unitate în /etc/systemd/systemdirector.

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

Apoi, copiați următorul conținut în fișier.

[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

Acest fișier de unitate definește comportamentul de pornire și închidere de bază pentru GitBucket și rulează serviciul sub utilizatorul nostru de sistem neprivilejat de pe interfața de rețea exclusiv locală.

Dacă ați modificat numărul de port GitBucket va asculta, schimbați --portargumentul pentru ExecStartcomandă.

Salvați (" CTRL+O") noul fișier de unitate și apoi ieșiți din editor (" CTRL+X"). Va trebui să reîncărcați Systemd pentru a fi descoperit noul fișier de unitate.

sudo systemctl daemon-reload

După ce Systemd s-a reîncărcat, verificați dacă noua unitate a fost descoperită și încărcată.

sudo systemctl status gitbucket

Ar trebui să vedeți următoarea ieșire.

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

În cele din urmă, activați noua unitate pentru a porni automat când se pornește serverul dvs., apoi porniți serviciul pentru prima dată.

sudo systemctl enable gitbucket
sudo systemctl start gitbucket

Odată ce serviciul a început, veți putea accesa GitBucket din browserul dvs. folosind din nou adresa IP și numărul de port.

Configurarea proxy-ului invers Nginx

În timp ce se poate expune GitBucket direct prin port 8080, puteți îmbunătăți performanțele și configura funcții precum HTTP / 2, criptarea TLS și regulile de memorie în cache expunând GitBucket prin Nginx.

Configurare inițială Nginx

Dacă nu ați instalat deja Nginx, actualizați-vă listele de pachete.

sudo apt update

Apoi instalați pachetul Nginx.

sudo apt install nginx

După ce Nginx a fost instalat, verificați dacă puteți accesa serverul web prin adresa IP a serverului dvs. fără numărul de port (adică http://203.0.113.0sau http://example.com). Dacă aveți succes, veți vedea pagina de destinație Nginx implicită pentru Ubuntu.

Crearea proxy-ului invers

Vom copia configurația implicită a site-ului /etc/nginx/sites-availableca punct de plecare pentru proxy invers.

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

Deschideți fișierul de configurare nou creat cu nano.

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

Localizați location /blocul existent pe linia 43.

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

În prezent, Nginx va încerca să returneze fișierele în /var/www/htmlcare se potrivesc HTTPsolicitările primite . Va trebui să schimbăm acest comportament prin configurarea unui proxy invers în acest bloc, care va trimite în schimb instanța GitBucket toate solicitările HTTP făcute serverului nostru Nginx. Actualizați location /blocul pentru a se potrivi cu următoarele.

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

Dacă ați modificat numărul de port pe care GitBucket îl va asculta, actualizați proxy_passopțiunea pentru a reflecta acest lucru.

Pentru a activa noua noastră configurație, va trebui să dezactivați configurația implicită existentă /etc/nginx/sites-enabled, apoi să faceți o sincronizare a noii noastre configurații la /etc/nginx/sites-enabledurmătoarele.

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

După ce fișierul de configurare a fost activat, verificați dacă există erori de sintaxă.

sudo nginx -t

Apoi, reporniți serverul Nginx pentru a activa noua noastră configurație a site-ului.

sudo systemctl restart nginx

Acum ar trebui să puteți accesa instalarea dvs. GitBucket pe adresa publică a serverului dvs. fără un număr de port.

Securizarea procesului GitBucket de pe internetul public

În prezent, instanța noastră GitBucket ascultă pe interfața de rețea publică a serverului nostru . Acest lucru va permite utilizatorilor să ocolească proxy-ul Nginx conectându-se la adresa pe care GitBucket o ascultă în prezent, care este probabil nedorită. Pentru a rezolva acest lucru, va trebui să modificăm fișierul de unitate creat anterior. Deschideți fișierul unității cu nano.

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

Adăugați --host 127.0.0.1la ExecStartcomandă, ca atare.

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

Acest lucru va determina GitBucket să accepte doar conexiunile pe interfața de rețea locală a serverului nostru. Încă o dată, salvați (" CTRL+O") fișierul, închideți (" CTRL+X") editorul, reîncărcați Systemd și reporniți unitatea noastră GitBucket.

sudo systemctl daemon-reload
sudo systemctl restart gitbucket

Dacă utilizați Firewall-ul lui Vultr, ar trebui să eliminați, de asemenea, orice reguli de port adăugate pentru a accesa serverul GitBucket în timpul configurației inițiale.



Leave a Comment

Cum se instalează Anchor CMS pe un VPS Fedora 26 LAMP

Cum se instalează Anchor CMS pe un VPS Fedora 26 LAMP

Folosind un sistem diferit? Anchor CMS este un motor de blog de sistem de gestionare a conținutului (CMS) super-simplu și extrem de ușor, gratuit și deschis

Configurare partajare NFS pe Debian

Configurare partajare NFS pe Debian

NFS este un sistem de fișiere bazat pe rețea care permite computerelor să acceseze fișiere într-o rețea de calculatoare. Acest ghid explică modul în care puteți expune folderele peste NF

Configurați un server TeamTalk pe Linux

Configurați un server TeamTalk pe Linux

TeamTalk este un sistem de conferințe care permite utilizatorilor să aibă conversații audio / video de înaltă calitate, chat de text, transfer de fișiere și partajare ecrane. Este

Folosind cheia SSH pentru a vă conecta la utilizatori non-root

Folosind cheia SSH pentru a vă conecta la utilizatori non-root

Vultr oferă o caracteristică care vă permite să preinstalați cheile SSH la crearea unei noi instanțe. Acest lucru vă permite să accesați utilizatorul root al serverelor, totuși

Cum se instalează Ranger Terminal File Manager pe Linux

Cum se instalează Ranger Terminal File Manager pe Linux

Ranger este un manager de fișiere bazat pe linia de comandă cu legături de cheie VI. Oferă o interfață de blestem minimalistă și frumoasă, cu o vedere asupra ierarhiei de directoare

Cum se instalează Redmine pe Ubuntu 16.04

Cum se instalează Redmine pe Ubuntu 16.04

Folosind un sistem diferit? Redmine este un instrument gratuit și deschis de gestionare a proiectelor bazat pe web. Este scris în Ruby on Rails și acceptă mai multe baze de date

Instalare RethinkDB Cluster pe CentOS 7

Instalare RethinkDB Cluster pe CentOS 7

Introducere RethinkDB este o bază de date NoSQL care stochează date sub formă de documente JSON. Are un limbaj de interogare super intuitiv și are funcții disponibile în mod obișnuit

Cum se construiește Brotli din sursă pe Ubuntu 18.04 LTS

Cum se construiește Brotli din sursă pe Ubuntu 18.04 LTS

Folosind un sistem diferit? Brotli este o nouă metodă de compresie cu un raport de compresie mai bun decât GZIP. Codul sursă este găzduit public pe acest Githu

Configurarea conturilor de utilizator numai SFTP pe CentOS 7

Configurarea conturilor de utilizator numai SFTP pe CentOS 7

În anumite ocazii, este posibil ca un administrator de sistem să aibă nevoie să creeze un cont de utilizator și să restricționeze accesul acestora la gestionarea propriilor fișiere prin sFTP, dar nu b

Utilizarea vizualizărilor MySQL pe Debian 7

Utilizarea vizualizărilor MySQL pe Debian 7

Introducere MySQL are o caracteristică excelentă cunoscută sub numele de vizualizări. Vizualizările sunt interogări stocate. Gândiți-vă la ele ca la un alias pentru o întrebare altfel lungă. În acest ghid,

Cum se instalează Nginx 1.14 pe Arch Linux

Cum se instalează Nginx 1.14 pe Arch Linux

Cerințe preliminare Un server Vultr care funcționează actualizat Arch Linux (vezi acest articol.) Acces Sudo. Comenzile care trebuie rulate ca root sunt prefixate de #. Th

Dezactivați sau restricționați conectarea rădăcină prin SSH pe Linux

Dezactivați sau restricționați conectarea rădăcină prin SSH pe Linux

Permiterea autentificării root pe SSH este de obicei considerată o practică slabă de securitate în întreaga industrie tehnologică. În schimb, puteți efectua administrativ sensibil

Cum se instalează Seafile Server pe Ubuntu 16.10

Cum se instalează Seafile Server pe Ubuntu 16.10

Folosind un sistem diferit? Seafile (versiunea comunității) este o soluție gratuită și deschisă de sincronizare și partajare a fișierelor, care este similară cu ownCloud. De-a lungul spiritului

Cum să compilați Nginx din sursă pe CentOS 7

Cum să compilați Nginx din sursă pe CentOS 7

Folosind un sistem diferit? NGINX poate fi utilizat ca server HTTP / HTTPS, server proxy invers, server proxy de poștă, echilibrator de sarcină, terminator TLS sau cachin

Cum se instalează Thelia 2.3 pe Debian 9

Cum se instalează Thelia 2.3 pe Debian 9

Folosind un sistem diferit? Thelia este un instrument open source pentru crearea de site-uri web pentru e-business și gestionarea conținutului online scris în PHP. Codul sursă Thelia i

Cum se instalează DokuWiki pe Ubuntu 16.04 LTS

Cum se instalează DokuWiki pe Ubuntu 16.04 LTS

Folosind un sistem diferit? DokuWiki este un program wiki open source scris în PHP care nu necesită o bază de date. Stochează date în fișiere text. DokuWik

Configurarea unui chroot pe Debian

Configurarea unui chroot pe Debian

Acest articol vă va învăța cum să configurați o închisoare chroot pe Debian. Presupun că utilizați Debian 7.x. Dacă executați Debian 6 sau 8, acest lucru poate funcționa, bine

Cum se instalează PiVPN pe Debian

Cum se instalează PiVPN pe Debian

Introducere Un mod ușor de a configura un server VPN pe Debian este cu PiVPN. PiVPN este un instalator și un pachet pentru OpenVPN. Creează comenzi simple pentru tine

Cum se instalează Chamilo 1.11.8 pe CentOS 7

Cum se instalează Chamilo 1.11.8 pe CentOS 7

Folosind un sistem diferit? Chamilo este un sistem gratuit și deschis de management al învățării (LMS), care este utilizat pe scară largă pentru educația online și colaborarea în echipă

Instalați Nginx, Wordpress și permiteți criptarea în minute cu EasyEngine pe Debian 8 sau Ubuntu 16.04

Instalați Nginx, Wordpress și permiteți criptarea în minute cu EasyEngine pe Debian 8 sau Ubuntu 16.04

EasyEngine (ee) este un instrument Python care vă permite să gestionați ușor și automat site-urile Wordpress de pe Nginx. Folosind EasyEngine, nu va trebui să dați

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe