Előfeltételek
Előfeltételek telepítése
A GitBucket telepítése
Az Nginx fordított proxy konfigurálása
Ez az útmutató lefedi a GitBucket alapvető telepítését és beállítását egy Ubuntu 16.04-et futtató Vultr-példányhoz, és feltételezi, hogy Ön non-rootfelhasználóként hajtja végre a parancsokat .
Előfeltételek
- Vultr szerverpéldány legalább 1 GB RAM-mal (a kisebb példányok működhetnek, bár lassan).
openjdk-8-jre Kötelező, a régebbi verziók nem működnek.
wget A GitBucket csomag letöltésére szolgál.
nginx Opcionális, fordított proxyt biztosít a GitBucket számára
systemd Kezeli a GitBucket folyamat elindítását és leállítását
Előfeltételek telepítése
A GitBucket Java 8-as vagy újabb verzióját igényli a szerverére. Ha még nem telepítette a Java 8-at, először frissítse a helyi csomaglistákat.
sudo apt update
Ezután telepítse a Java 8 futásidejű csomagot.
sudo apt install openjdk-8-jre
A GitBucket telepítése
Kiváltság nélküli felhasználó létrehozása
A GitBucket futtatásához létre kell hoznunk egy privilegizált felhasználót, mielőtt továbbmennénk. A GitBucket jogosulatlan felhasználó alatti futtatása korlátozza a telepítésünket abban, hogy a saját adatkönyvtárán kívülre írjon, erősítve ezzel a szerver biztonságát. Futtassa a következő parancsot egy nevű rendszerfelhasználó létrehozásához gitbucket.
sudo adduser --system gitbucket
Mivel rendszerfelhasználót hoztunk létre , az alapértelmezett shell a /bin/false, és visszakerülünk a jelenlegi shellünkhöz, hacsak nem adunk meg egy további shell argumentumot a futtatásakor su. Jelentkezzen be az újonnan létrehozott felhasználóhoz.
sudo su - gitbucket -s /bin/bash
A shell promptjának meg kell változnia, és Ön bejelentkezik az új rendszerfelhasználóba.
A GitBucket letöltése/frissítése
Keresse meg a GitBucket kiadások oldalát, és keresse meg a legújabb elérhető verziót. Másolja ki a gitbucket.warcsomag URL-jét , ellenőrizze, hogy az új felhasználó kezdőkönyvtárában van-e, és töltse le a segítségével wget.
cd ~/
wget https://github.com/gitbucket/gitbucket/releases/download/4.18.0/gitbucket.war
Ezt a lépést minden alkalommal meg kell ismételnie, amikor frissíteni kívánja a GitBucket csomagot.
Kezdeti GitBucket konfiguráció
A csomag letöltése után manuálisan kell elindítanunk a GitBucket-et a kezdeti konfiguráció elvégzéséhez.
java -jar gitbucket.war --port 8080
Ha a portot 8080már lefoglalta egy másik folyamat, módosíthatja azt a portot, amelyet a GitBucket most hallgat. Ez az útmutató végig feltételezi, hogy a GitBucket a porton figyel8080 .
Ez elindítja a GitBucket-et a szerver nyilvános hálózati interfészén, és a megadott porton figyel. Néhány pillanat múlva látnia kell a következő üzenetet.
INFO:oejs.Server:main: Started @15891ms
Ha a Vultr tűzfalát használja , meg kell nyitnia azt a portot, amelyen a GitBucket figyel, mivel a Vultr tűzfala fehérlistaként működik, és elutasítja a forgalmat, hogy engedélyezze a portokat, hacsak nincs másként megadva.
A GitBucket telepítésének most online kell lennie, és elérhetőnek kell lennie az internetről. Egy webböngésző segítségével csatlakozzon szervere nyilvános címéhez (ügyeljen arra, hogy megadja a portot, amelyen a GitBucket fut, (vagyis http://203.0.113.0:8080vagy http://example.com:8080), és a GitBucket kezdőlapjára kerül.
Az alapértelmezett rendszergazdai fiók jelszavát azonban meg kell változtatni. Ehhez jelentkezzen be a rendszergazdai fiókba Sign ina webes felület jobb felső sarkában található gombbal. A rendszergazdai fiók alapértelmezett bejelentkezési neve roota felhasználónév, majd rootismét a jelszó. A bejelentkezést követően a gomb helyére egy profilikon és legördülő menü kerül. Bontsa ki a legördülő listát, válassza a lehetőséget Account Settings, majd állítson be egy új, biztonságosabb jelszót a fiókbeállítások varázslójában.
Miután frissítette az alapértelmezett rendszergazdai fiók hitelesítő adatait, és meggyőződött arról, hogy a GitBucket elindul ebben a minimális konfigurációban, állítsa le a Java folyamatot a " CTRL+C" elemmel, és zárja be az aktuális shellt a következővel exit.
A Systemd szolgáltatás létrehozása
Jelenleg csak úgy tudjuk futtatni a GitBucketet, ha SSH-n keresztül érjük el a szerverünket, és kézzel indítjuk el a folyamatot egy shellből. Szerencsére az Ubuntu előre csomagolva érkezik Systemd, ami lehetővé teszi számunkra, hogy olyan szolgáltatást hozzunk létre, amellyel a GitBucket automatikusan elindul, és a rendszer karbantartja.
A segítségével nanohozzon létre egy új egységfájlt a /etc/systemd/systemkönyvtárban.
sudo nano /etc/systemd/system/gitbucket.service
Ezután másolja be a következő tartalmat a fájlba.
[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
Ez az egységfájl határozza meg a GitBucket alapvető indítási és leállítási viselkedését, és a szolgáltatást a mi jogosulatlan rendszerfelhasználónk alatt futtatja a csak helyi hálózati interfészen.
Ha megváltoztatta a portszámot, amelyet a GitBucket figyel, módosítsa --porta ExecStartparancs argumentumát .
Mentse (" CTRL+O") az új egységfájlt, majd lépjen ki a szerkesztőből (" CTRL+X"). Az új egységfájl felderítéséhez újra kell töltenie a Systemd-et.
sudo systemctl daemon-reload
A Systemd újratöltése után ellenőrizze, hogy az új egységet megtalálták és betöltették-e.
sudo systemctl status gitbucket
A következő kimenetet kell látnia.
gitbucket.service - GitBucket
Loaded: loaded (/etc/systemd/system/gitbucket.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Végül engedélyezze az új egység automatikus elindulását, amikor a kiszolgáló elindul, majd indítsa el először a szolgáltatást.
sudo systemctl enable gitbucket
sudo systemctl start gitbucket
A szolgáltatás elindítása után újra hozzáférhet a GitBuckethez a böngészőből az IP-cím és a portszám használatával.
Az Nginx fordított proxy konfigurálása
Míg a GitBucket közvetlenül a porton keresztül is elérhetővé válik, a GitBucket az Nginxen keresztül történő közzétételével 8080javíthatja a teljesítményt és konfigurálhat olyan funkciókat, mint a HTTP/2, a TLS titkosítás és a gyorsítótárazási szabályok.
Az Nginx kezdeti beállítása
Ha még nem telepítette az Nginxet, frissítse a csomaglistákat.
sudo apt update
Ezután telepítse az Nginx csomagot.
sudo apt install nginx
Az Nginx telepítése után ellenőrizze, hogy a szerver IP-címén keresztül hozzáfér-e a webszerverhez a portszám nélkül (vagyis http://203.0.113.0vagy http://example.com). Ha sikeres, látni fogja az Ubuntu alapértelmezett Nginx céloldalát.
A fordított proxy létrehozása
A /etc/nginx/sites-availablefordított proxy kiindulópontjaként az alapértelmezett webhelykonfigurációt másoljuk be .
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/gitbucket
Nyissa meg az újonnan létrehozott konfigurációs fájlt a segítségével nano.
sudo nano /etc/nginx/sites-available/gitbucket
Keresse meg a meglévő location /blokkot a 43. sorban.
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
Jelenleg az Nginx megpróbálja visszaadni a /var/www/htmlbejövő HTTPkéréseknek megfelelő fájlokat . Ezt a viselkedést meg kell változtatnunk egy fordított proxy konfigurálásával ebben a blokkban, amely az Nginx-kiszolgálónknak küldött összes HTTP-kérést a GitBucket-példányra küldi. Frissítse a location /blokkot, hogy megfeleljen a következőknek.
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;
}
Ha megváltoztatta a portszámot, amelyen a GitBucket figyelni fog, frissítse a proxy_passbeállítást, hogy tükrözze ezt.
Új konfigurációnk engedélyezéséhez le kell tiltania a meglévő alapértelmezett konfigurációt itt /etc/nginx/sites-enabled, majd szimbolizálnia kell az új konfigurációnkat /etc/nginx/sites-enableda következőkkel.
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/gitbucket /etc/nginx/sites-enabled/gitbucket
A konfigurációs fájl engedélyezése után ellenőrizze, hogy nincsenek-e szintaktikai hibák.
sudo nginx -t
Ezután indítsa újra az Nginx szervert az új webhelykonfiguráció engedélyezéséhez.
sudo systemctl restart nginx
Mostantól portszám nélkül is hozzáférhet a GitBucket telepítéséhez a szerver nyilvános címén .
A GitBucket folyamat biztonságossá tétele a nyilvános internetről
Jelenleg a GitBucket példányunk figyel szerverünk nyilvános hálózati felületén. Ez lehetővé teszi a felhasználók számára, hogy megkerüljék az Nginx proxyt azáltal, hogy csatlakoznak ahhoz a címhez, amelyre a GitBucket jelenleg figyel, ami valószínűleg nemkívánatos. Ennek megoldásához módosítanunk kell a korábban létrehozott egységfájlt. Nyissa meg az egységfájlt a gombbal nano.
sudo nano /etc/systemd/system/gitbucket.service
Adja --host 127.0.0.1hozzá a ExecStartparancsot, így.
...
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080 --host 127.0.0.1
...
Ez azt eredményezi, hogy a GitBucket csak a szerverünk helyi hálózati interfészén lévő kapcsolatokat fogadja el. Még egyszer mentse (" CTRL+O") a fájlt, zárja be (" CTRL+X") a szerkesztőt, töltse be újra a Systemd-et, és indítsa újra a GitBucket egységet.
sudo systemctl daemon-reload
sudo systemctl restart gitbucket
Ha Vultr's Firewall-t használ, akkor el kell távolítania minden portszabályt is, amelyet a kezdeti beállítás során hozzáadott a GitBucket szerver eléréséhez.